2012-06-16 8 views
23

Miro todo el Internet \ goolge \ stackoverflow y no pude encontrar una guía completa que me explique cómo puedo encontrar si mi aplicación de Android tiene una pérdida de memoria. ¿Alguien puede explicarme cómo hacerlo, o mejor aún darme una buena guía para ello?¿Cómo puedo determinar si mi aplicación de Android tiene pérdida de memoria?

Mi aplicación recopila datos sobre la batería y la guarda en DB en el teléfono. Cada vez que haya un cambio en la batería (ACTION_BATTERY_CHANGED) verifico si el porcentaje de la batería cambió y en este caso guardo algunos datos.

Esta aplicación requiere (25-30) MB de RAM Creo que esto es demasiado para una aplicación tan simple. Sospecho que tiene una pérdida de memoria.

Respuesta

23
1

En general, si se utiliza una aplicación y se está acumulando la memoria

12 MB ... 13.5 MB .. .15 MB ... piensa en una nube que acumula humedad ... etc.

Si ve este patrón, su aplicación tiene pérdida de memoria.

Otra posibilidad es que no tenga una fuga, pero solo use demasiados objetos o objetos demasiado grandes o que no economice los objetos lo suficientemente bien. tenga en cuenta que los mapas de bits son muy caros, por lo que manejar mapas de bits puede no ser tan trivial en Android, que es la memoria y el entorno de recursos limitados.

2

Cuando me enfrenté al mismo problema que usted, encontré LeakCanary. Ayuda a detectar fugas de memoria durante el tiempo de ejecución en compilaciones de depuración y proporciona una interfaz de usuario cómoda para el historial de stacktrace.Aquí puede leer más información sobre esta herramienta para detectar fugas de memoria, así como otras sugerencias útiles para el desarrollo de Android: http://cases.azoft.com/4-must-know-tools-for-effective-android-development/. ¡Espero que funcione para ti y para otros desarrolladores de dispositivos móviles!

Cuestiones relacionadas