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"

One Solution collect form web for “Android, veo que el montón crece, pero quiero que pare”

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.

  • Lona: intentando usar un mapa de bits reciclado android.graphics.Bitmap
  • El servicio detenido está haciendo la recolección de basura constante
  • En una aplicación React Native JavaScript, ¿por qué cambiaría el comportamiento de Android GC si creaba una variable temporal en lugar de devolver un valor directamente?
  • 17.8 MiB asignación de montón para un simple "Hello World" proyecto?
  • Monodroid: Realización de un GC completo
  • Obtener la lista de procesos en ejecución y eliminar sus servicios de fondo
  • Colección de cuerdas y basura
  • Gran cantidad de memoria no recogida de basura
  • Formatea una dirección MAC en Android / Java sin crear basura innecesaria
  • Asignación de mapa de bits, utilizando BitmapFactory.Options.inBitmap arroja IllegalArgumentException
  • ¿Está creando lo siguiente para loop bad para Garbage Collection?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.