Android, память треков от DDMS, "Get Allocations" ничего не делает
Как говорится в названии вопроса. Шаги, которые я сделал:
- нажмите "Обновить кучу"
- На вкладке "Отслеживание распределения" нажмите "Начать отслеживание"
- Нажмите "Получить распределения"
В консоли я увидел красные сообщения:
[2013-12-29 13:56:40 - ddm-heap] *** Получено REAL`
Что случилось? я что-то упускаю?
Спасибо
Ответы
Ответ 1
Ну, REAL - это Recent ALlocation.
Исходя из исходного кода, регистрация ошибки - это самая первая строка handleREAL(). Просто предположение - это должен быть Log.d() вместо Log.e(), но я не могу сказать точно.
И да, "Get Allocations" для меня работает не каждый раз, когда я нажимаю на него. Полученный журнал не может быть экспортирован и исчезает, как только приложение на устройстве заканчивается. К сожалению, не очень удобный инструмент трассировки...
Ответ 2
Это нужно сделать в Android Studio. (Спасибо участнику проекта, который сказал об этом в этом отчете об ошибке: https://code.google.com/p/android/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Status%20Priority%20Owner%20Summary%20Stars%20Reporter%20Opened&groupby=&sort=&id=74059)
Вы можете видеть, что значки даже имеют то же имя, что и значки в DDMS (что запутывает)! Но Tracker Allocation Tracker в DDMS не работает, и тот, что находится в Android Studio "Android Monitor", делает.
P.S. На скриншотах я использовал Android Studio 2.3 и Android Device Monitor версии 25.2.2.
Неверно (не работает):
![Монитор DDMS (не работает)]()
Вправо (работает):
![Android Monitor в Android Studio]()
Результаты будут отображаться в окне рядом с исходным кодом следующим образом:
![введите описание изображения здесь]()
Для получения дополнительной информации:
https://developer.android.com/studio/profile/am-memory.html https://developer.android.com/studio/profile/am-allocation.html