libreria library glide example developer bitmaps android memory bitmap

library - Cómo evitar la falla de createBitmap() en Android



libreria glide android (2)

He publicado información sobre cómo se manejan los mapas de bits en el siguiente boleto de emisión de Android. Puede serle útil: http://code.google.com/p/android/issues/detail?id=8488#c80

Estoy usando createBitmap() en múltiples lugares. Algunas veces esta API está lanzando excepción OutOfMemoryError() . ¿Cómo evitar esta excepción?

Estoy usando como abajo,

createBitamp(width, height, Config.ARGB_8888);

width = width de la pantalla

height = height de la pantalla

Cualquier ayuda sería apreciada.


Muchos enfrentan este problema. Tienes tres formas de resolver el problema:

  • Aumente la memoria disponible: detenga los servicios o cambie su dispositivo a uno más nuevo
  • Disminuya el uso de memoria: mediante la optimización de su código
  • [ACTUALIZAR] Liberar la memoria de Bitmap no utilizada: call recycle () .
  • [ACTUALIZAR] No use GarbageCollector :)

Por lo general, con problemas de mapa de bits, el recolector de basura ayudará.

La respuesta de Justin Breitfeller se vincula a una explicación más detallada del funcionamiento interno del Bitmap. El mensaje que se debe quitar es que la memoria asignada para los datos del mapa de bits (en el método native createBitmap) se trata de manera algo separada, y GarbageCollector no la libera directamente cuando Bitmap se convierte en basura. La solución real es reciclar () sus bitmaps cuando no los usa. Esto mantendrá la memoria (pequeña) asignada para el objeto Bitmap, pero marque la memoria (grande) asignada para la recolección de basura de datos de mapa de bits. Por lo tanto, GarbageCollector liberará ambos, pero no tiene que llamarlo manualmente, antes de que ocurra una OutOfMemory, JVM intentará GarbageCollect de todos modos.