Может ли кто-нибудь дать мне подробное объяснение профиля, полученного через adb shell dumpsys meminfo my-app-name
?
Результат выглядит так, как показано ниже в Как узнать использование памяти моего приложения на Android?:
** MEMINFO in pid 890 [process-name] **
native dalvik other total
size: 10940 7047 N/A 17987
allocated: 8943 5516 N/A 14459
free: 336 1531 N/A 1867
(Pss): 4585 9282 11916 25783
(shared dirty): 2184 3596 916 6696
(priv dirty): 4504 5956 7456 17916
Objects
Views: 149 ViewRoots: 4
AppContexts: 13 Activities: 0
Assets: 4 AssetManagers: 4
Local Binders: 141 Proxy Binders: 158
Death Recipients: 49
OpenSSL Sockets: 0
SQL
heap: 205 dbFiles: 0
numPagers: 0 inactivePageKB: 0
activePageKB: 0
Что означает каждый столбец (native, dalvik, other, total)? особенно, что "другая" колонка (я не могу понять, что это помимо родного и далвика)? Было бы здорово, если бы кто-то мог дать конкретный пример, чтобы рассказать об этом. например У меня есть приложение A. A имеет свой собственный объект obj_private и собственную библиотеку lib_private. Кроме того, A ссылается на какой-то объект фреймворка Android obj_shared и некоторый собственный lib платформы Android lib_shared. И obj_shared ссылается на некоторый собственный lib из Android lib_shared_indirect. Для этого случая могу ли я сказать те?
- "Общий размер" равен всей памяти, используемой "obj_private + lib_private + obj_shared + lib_shared + lib_shared_indirect".
- "Частная грязная" равна памяти, загрязненной "obj_private + lib_private"
Причина, по которой мы хотим прояснить это, - это некоторое необычное увеличение времени исполнения нашей последней версии по сравнению с предыдущей версией. И когда я использовал meminfo dumpsys, я обнаружил, что столбцы "native" и "other" резко увеличились. Но изменение новой версии связано только с java, и нет объяснения о "другом" столбце. Я искал это и не нашел документа. Я также попытался прочитать исходный код adb. Но мне было легко заблудиться в исходном коде для новичков, подобных мне. Поэтому я размещаю этот вопрос здесь, если кто-то может помочь.