Android crecer caso de frag de montón

Estoy trabajando en una aplicación de streaming de música de Internet … Mi aplicación hace muchas cosas y está estructurado de esta manera: Tengo una vista de pestaña y cada vista se asigna en la memoria por lo que cada vez que navego a través de las pestañas que encontrar de nuevo el Todo lo que crece la ocupación de la memoria pero hace que la aplicación sea muy fácil de usar … Después de haber prestado atención para evitar fugas de memoria después de la guía de Android , Traté de mirar la ocupación heap y me di cuenta de que mi aplicación asigna un máximo de 3,5 MB de memoria y el tamaño de montón asignado es 4,5 – 4,6 MB … Estoy trabajando en el emulador .. No son tanto creo , Pero a veces mi aplicación se reinicia fundando en LogCat un extraño mensaje como

Grow heap ( frag case ) to 3.373 for 19764-byte allocation 

¿Qué es? Un problema de emulador? ¿o algo mas? ¿Estoy usando demasiada memoria?

Gracias de antemano por cualquier ayuda 🙂

El tamaño máximo del montón depende del dispositivo (puede obtener ese valor llamando a Runtime.getRuntime().maxMemory() ), pero es probablemente alrededor de 32 MB. Para ahorrar memoria, Android no asigna memoria máxima a cada aplicación automáticamente. En su lugar, espera hasta que la aplicación necesite más memoria y luego le da más espacio de montón, según sea necesario, hasta que alcance el máximo. Creo que es el mensaje Grow heap que ves.

Si realiza una gran cantidad de asignación de memoria y liberación, puede tener problemas de fragmentación. Wikipedia tiene una descripción decente aquí , pero básicamente significa que usted podría tener la memoria necesaria disponible, no sólo en un trozo. De ahí la necesidad de hacer crecer el montón.

Así que para responder a sus preguntas, probablemente no es un problema de emulador, es sólo la naturaleza de su programa, que suena un poco de memoria pesada. Sin embargo, esto no es una mala cosa. No creo que usar 3-5 MB para varias pestañas con vistas a la web sea demasiado.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.