iberck
4/9/2015 - 5:06 PM

Detectar memory leaks

Detectar memory leaks

Detectar memory leaks en Netbeans/Android

  • Descargar eclipse mat
  • Ejecutar la aplicación android en el emulador.
  • Abrir Android Device Monitor (ADM): android-sdk/tools/monitor
  • Si no aparecen los procesos en Android Device Monitor, desde netbeans restart ADB. Si siguen sin aparecer nuevamente restar ADB...
  • Si no aparecen cambiar el puerto del ADM, el puerto aparece en las las propiedades del proceso (en android devices) y nuevamente restart ADB.

[Cómo utilizar ADM y MAT] (http://www.raizlabs.com/dev/2014/04/hunting-your-leaks-memory-management-in-android-part-2-of-2/)

Android Reference - Debugging memory

Nota: El archivo hprof no puede ser leido directamente por mat, hay que convertirlo con la herramienta hprof-conv que viene dentro de las herramientas de android, ejemplo:

C:\adt-bundle-windows-x86_64-20140702\sdk\platform-tools>hprof-conv d:\tmp\mx.co
m.memoryleaks.hprof d:\tmp\mx.com.memoryleaks.mat.hprof

Nota: Cuando ya se tienen muchos objetos, el emulador lanza una excepción por un bug de un timeout de android y no permite utilizar las herramientas. La solución es ejecutar el proceso directamente sobre el dispositivo móvil.

Nota2: android:debuggable="true" para que funcione en el móvil.