Подтвердить что ты не робот

Как определить, есть ли у моего приложения Android утечка памяти?

Я смотрю по всему Интернету \goolge\stackoverflow и не могу найти полное и простое руководство, которое может объяснить мне, как я могу найти, есть ли у моего приложения Android утечка памяти. Может ли кто-нибудь объяснить мне, как это сделать, или даже лучше дать мне хорошее руководство для этого?

Мое приложение собирает данные о батарее и сохраняет ее в БД на телефоне. Каждый раз, когда это изменение батареи (ACTION_BATTERY_CHANGED), я проверяю, изменился ли предварительный уровень батареи, и в этом случае я сохраняю некоторые данные.

Это приложение занимает (25-30) МБ ОЗУ. Я думаю, что это слишком много для такого простого приложения. Я подозреваю, что он имеет утечку памяти.

4b9b3361

Ответ 1

Вы можете использовать MAT

Это очень хороший инструмент и дает очень подробный отчет о вашем проекте с базовой информацией, связанной с утечками памяти.

MAT в Android

http://android-developers.blogspot.in/2011/03/memory-analysis-for-android.html

Как использовать MAT

http://kohlerm.blogspot.in/2009/07/eclipse-memory-analyzer-10-useful.html

http://android-developers.blogspot.in/2011/03/memory-analysis-for-android.html

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

Интеграция Eclipse MAT

http://www.eclipse.org/mat/downloads.php

http://www.eclipse.org/forums/index.php/m/878338/

Обновить сайт: http://download.eclipse.org/mat/1.1/update-site/

Интеграция Eclipse BERT (зависимость от этого)

http://wiki.eclipse.org/BIRT_Update_Site_URL

http://download.eclipse.org/birt/update-site/3.7-interim

Инструмент анализа памяти в android?

Ответ 2

Когда я столкнулся с той же проблемой, что и вы, я нашел LeakCanary. Он помогает обнаруживать утечки памяти во время выполнения в отладочных сборках и обеспечивает удобный пользовательский интерфейс для истории stacktrace. Здесь вы можете прочитать дополнительную информацию об этом инструменте для обнаружения утечек памяти, а также некоторые другие полезные подсказки для разработки Android: http://cases.azoft.com/4-must-know-tools-for-effective-android-development/. Надеюсь, это сработает для вас и других разработчиков мобильных устройств!

Ответ 3

Как правило, если вы используете приложение и аккумулируете память

12 MB... 13.5 MB... 15 MB... подумайте о облаке, который накапливает влажность... и т.д.

Если вы видите этот шаблон, а ваше приложение имеет утечку памяти.

Другая возможность заключается в том, что у вас нет утечки, но вы просто используете слишком много объектов или слишком больших объектов или что вы не экономите объекты достаточно хорошо. учтите, что растровые изображения очень дороги, поэтому обработка растровых изображений может быть не столь тривиальной в андроиде, которая является средой с ограничением памяти и ресурсов.