В настоящее время я работаю над гибридным приложением, которое демонстрирует некоторые особенности использования памяти, которые я пытаюсь отлаживать. Как только приложение запускается, кажется, что он сразу использует около 250 МБ памяти, что кажется чрезмерно заданным, что все, что мы загрузили в этот момент, - это экран входа в систему. Я искал несколько инструментов профилирования памяти для Android (профайлер Xamarin и профилировщик андроидов, поставляемый с SDK), но все они показывают относительно низкую загрузку кучи (~ 10-15 МБ, которую я пытаюсь спуститься). Я запустил "adb shell dumpsys meminfo APPNAME -d" и получил следующую трассировку:
** MEMINFO in pid 24925 [APPNAME] **
Pss Private Private Swapped Heap Heap Heap
Total Dirty Clean Dirty Size Alloc Free
------ ------ ------ ------ ------ ------ ------
Native Heap 19439 19396 0 0 28672 22915 5756
Dalvik Heap 15441 14992 0 0 37319 36837 482
Dalvik Other 542 368 0 0
Stack 432 432 0 0
Ashmem 17388 16508 880 0
Gfx dev 40538 34504 0 0
Other dev 4 0 4 0
.so mmap 6211 224 3080 0
.apk mmap 10531 0 10232 0
.ttf mmap 453 0 260 0
.dex mmap 1263 0 980 0
.oat mmap 635 0 152 0
.art mmap 707 516 24 0
Other mmap 452 4 52 0
EGL mtrack 63508 63508 0 0
GL mtrack 79116 79116 0 0
Unknown 21756 21756 0 0
TOTAL 278416 251324 15664 0 65991 59752 6238
Я пытался понять, что это означает, используя документацию, представленную по адресу: https://developer.android.com/tools/debugging/debugging-memory.html, но на этой странице нет никакой информации о самые большие виновники: Gfx dev, EGL mtrack, GL mtrack и Unknown. Есть ли какая-то документация о том, что представляют собой эти категории или почему они будут расти настолько большими?
Спасибо