Cómo encontrar Memory Leak Class / Activity en Android

Soy nuevo en esta plataforma de Android. En una aplicación, hay una pérdida de memoria. Pero no pude encontrar en qué actividad o clase está ocurriendo la fuga de memoria.

Estoy usando MAT para obtener la información de que la fuga de memoria está ahí o no. Pero no puede encontrar qué actividad se está filtrando.

Por favor dígame cómo encontrar la actividad que se está filtrando.

Gracias.

Incluso si esta pregunta es muy antigua. Creo que un pequeño tutorial con imágenes podría ser útil. Entonces primero necesitas instalar el plugin MAT . Después de reiniciar, haga clic en el archivo Dump HPROF :

Controles del dispositivo

Después de un tiempo (aproximadamente 30 segundos) obtendrá un cuadro de diálogo donde puede hacer clic en finalizar. De lo que obtiene esta vista:

Resultado del volcado

Ahí hiciste clic en la parte más grande y filtraste con referencias salientes . Entonces obtienes esta vista aquí:

Aquí puede ver que me olvidé de eliminar elementos en mi ContentManager donde se almacenaron varios elementos en mi HashMap pendiente .

La mejor publicación que encontré aún sobre el seguimiento de memory leaks en las plataformas de Android es:

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

La primera parte está desactualizada porque ahora está integrada en Eclipse, pero la mayor parte de la publicación es excelente.

Utilice LeakCanary – una biblioteca de detección de memory leaks para Android y Java. LeakCanary mostrará automáticamente una notificación cuando se detecte una pérdida de memoria de actividad en la comstackción de depuración. Instalar esta biblioteca es muy simple.

https://github.com/square/leakcanary

Ejemplo de notificación:

enter image description here

No puedo comentar sobre la publicación anterior, pero es importante darse cuenta de que absolutamente debe preocuparse por la administración de la memoria, especialmente en el entorno de recursos confinados que es la plataforma móvil Android. Para más sobre eso, verifique aquí:

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

Puedes verlo en el DDMS.

Simplemente seleccione el nombre del paquete de su aplicación y haga clic en actualizar el botón anterior.

Ahora goto Heap Tab haz clic en Cause GC.

encontrará la lista de objetos usados.