Как найти класс утечки памяти / активность в Android - PullRequest
17 голосов
/ 15 сентября 2010

Я новичок в этой платформе Android. В одном приложении произошла утечка памяти. Но я не смог найти, в какой деятельности или классе происходит утечка памяти.

Я использую MAT, чтобы получить информацию, что утечка памяти есть или нет. Но не может найти, какая активность протекает.

Скажите, пожалуйста, как найти то, что активность просачивается.

Спасибо.

Ответы [ 5 ]

35 голосов
/ 08 февраля 2013

Даже если этот вопрос тихий старый.Я думаю, что небольшой учебник с изображениями может быть полезным.Итак, сначала вам нужно установить плагин MAT .После перезапуска нажмите Dump HPROF file :

Device controls

Через некоторое время (около 30 секунд) вы получите диалоговое окно, в котором можно нажать кнопку «Готово».,После этого вы получите:

Dump result

Там вы щелкнете левой кнопкой мыши на большую часть и отфильтруете для с исходящими ссылками .Тогда вы получите это представление здесь:

Здесь вы можете видеть, что я пропустил удаление элементов в моем ContentManager, где несколько элементов были сохранены в моем в ожидании HashMap.

5 голосов
/ 02 мая 2011

Лучший пост, который я нашел по отслеживанию утечек памяти на платформах Android:

http://ttlnews.blogspot.com/2010/01/attacking-memory-problems-on-android.html

Первая часть устарела, поскольку теперь она интегрирована в Eclipse, но большая часть постаздорово! * * 1006

4 голосов
/ 16 мая 2015

Использование LeakCanary - библиотека обнаружения утечек памяти для Android и Java.LeakCanary автоматически покажет уведомление, когда в вашей отладочной сборке будет обнаружена утечка памяти.Установить эту библиотеку очень просто.

https://github.com/square/leakcanary

Пример уведомления:

enter image description here

2 голосов
/ 20 сентября 2010

Я не могу комментировать предыдущий пост, но важно понимать, что вам абсолютно следует беспокоиться об управлении памятью, особенно в среде с ограниченными ресурсами, которой является мобильная платформа Android.Подробнее об этом можно узнать здесь:

http://android -developers.blogspot.com / 2009/01 / avoiding-memory-leaks.html

0 голосов
/ 05 января 2011

Вы можете увидеть это в DDMS.

Просто выберите имя пакета приложения и нажмите кнопку «Обновить», чтобы добавить указанную выше кнопку.

Теперь перейдите на вкладку «Куча» и нажмите «Причина GC».

вы найдете список использованных объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...