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