Gestión de la memoria android fuera del montón

Estoy trabajando en una aplicación para Android y ya que tenemos un montón de gráficos, se utiliza una gran cantidad de memoria.

Yo monitoreo el tamaño del montón de memoria y su alrededor de 3-4 Mb, y peeks de 5Mb cuando hago algo que requiere más memoria (y luego vuelve a 3). Esto no es una gran cosa, pero algunas otras cosas se maneja fuera de la memoria del montón, como la carga de drawables.

Por ejemplo, si ejecuto la herramienta ddms fuera de eclipse, e ir a sysinfo, veo que mi aplicación está tomando 20Mb en el Droid y 12 en el G1, pero el tamaño del montón es el mismo en ambos, porque los datos son los mismos, pero las imágenes son diferente.

Así que las preguntas son: ¿Cómo sé lo que está tomando la memoria fuera de la memoria de montón? ¿Qué otra cosa toma memoria fuera de la memoria del montón? Diseños complejos (árbol grande)? Animaciones?

Gracias

Daniel

Los objetos de mapa de bits toman bastante memoria .

Ex. Si la aplicación descarga un jpg de 10KB de la red y utiliza BitmapFactory para decodificarlo en un mapa de bits que los objetos de mapa de bits necesitan alrededor de 30-100KB de memoria, dependiendo de la resolución de la imagen. 3bytes por cada píxel (1 byte para cada color)

Y sí, todo tipo de objeto utiliza la memoria, como LinearLayouts, ImageViews etc … Si está creando y destruyendo muchos de estos objetos, ej. A medida que se desplaza / página a través de sus imágenes, habrá fugas de memoria. El gc () no maneja los llamados objetos de corta duración tan rápido como nos gustaría.

* Mantenga el número de objetos de vista en un nivel estable **, y recíclelos en lugar de destruir y crear otros nuevos.

REf: http://developer.android.com/resources/articles/track-mem.html

Si su aplicación alcanza los 20 MB de memoria, puede que FC como BitmapFactory esté intentando decodificar la siguiente imagen.

Un candidato obvio es off course bitmaps fuera de pantalla (doble buffer por android?), Ya que el screensize tiene ~ 4x tantos píxeles en el droide.

  • Android OutOfMemory pero con memoria de sobra
  • Razones por las que mi aplicación Android se bloquea en mi teléfono de forma consistente, pero no en mi emulador
  • Tamaño del montón de Android VM
  • FragmentStatePagerAdapter fuga de memoria (fragmentos anidados con viewpager)
  • Máxima memoria nativa que se puede asignar a una aplicación para Android
  • Android: Campos estáticos y fugas de memoria
  • Android Studio Libgdx Problemas de memoria
  • Cómo utilizar Eclipse Memory Analyzer Tool (MAT) para analizar un hashmap
  • OutOfMemoryException en el emulador
  • No se puede asignar suficiente memoria en JNI
  • Android Universal Image Loader - ¿Cómo configuro las especificaciones correctamente?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.