Android, veo que el montón crece, pero quiero que pare

Veo mi montón creciendo y sé que finalmente se bloqueará en cualquier dispositivo, ya que sólo sigue creciendo.

Grow heap (frag case)

se ve a través de los registros

en mi teléfono se bloqueará la aplicación en 32 MB utilizado. Otros teléfonos, por supuesto, ser de 16 MB, si hay alguno con los pocos recursos que se ejecutan Android 2.2

Ahora, estoy usando recycle() en mis mapas de bits, estableciendo las cosas en null, haciendo estallar elementos de estructuras de datos complejas, y usando System.gc() para invocar la recolección de basura, en toda la aplicación

pero, el montón todavía crece y su un problema … eventualmente

¿Cómo puedo forzar la aplicación a volcar los recursos para que pueda seguir funcionando.

por lo general es siempre el "presupuesto vm bitmap" superior, pero me siento cada vez más que simplemente no tienen acceso al comando "clear bitmap vm"

yo también había luchado mucho con este problema. hay muchas cosas que puedes hacer.

  1. puede llamar a reciclar en cada mapa de bits y ponerlos a null. ( bitmap.recycle() con relaese toda la memoria utilizada por este mapa de bits pero no anula el objeto de mapa de bits).

  2. también puede desvincular los elementos drawables asociados con los diseños como se especifica en este enlace .

  3. puede convertir sus hashmaps a WeakHashmaps . de modo que su memoria obtendría relaesed cuando el sistema funciona bajo en memoria.

  4. puede cambiar el tamaño de todos sus mapas de bits. echa un vistazo a esta tinta. .

  5. puede anular el método onLowMemory() en la actividad que obtiene una llamada cuando todo el sistema se ejecuta bajo en la memoria. puede liberar pocos recursos allí.

  6. puede hacer que sus objetos SoftReference o Weakreference , para que se liberen en condiciones de baja memoria.

Pero el hecho real es que, todo esto puede demorar su falta de memoria problema / accidente, pero no se puede eliminar porque la cosa es que debe estar goteando su contexto de la actividad o la memoria en alguna parte.

  • Cómo persistir el miembro estático en las preferencias compartidas cuando está a punto de ser recogido en Android
  • ¿Está creando lo siguiente para loop bad para Garbage Collection?
  • ¿Por qué la basura de Android recopila tantas veces con Jacksons ObjectMapper?
  • Colección de cuerdas y basura
  • Android AsyncTask Inicio de otro asyncTask
  • Android GC - LogCat siempre muestra actividad de GC
  • Otros procesos llaman a GC que ralentiza mi juego
  • Android adecuada limpieza / eliminación
  • Antecedentes parcial concurrente marca barrido GC
  • Cómo solucionar java.lang.OutOfMemoryError: Límite de sobrecarga de GC excedido error en android studio
  • Determinar cuándo se ejecuta el Android GC
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.