El error OOM se produce cuando la asignación cruza el límite del heap o su proceso demanda una cantidad de memoria que cruza el límite del heap.
En Android, cada aplicación se ejecuta en un Proceso Linux. Cada proceso Linux tiene una máquina virtual (Dalvik Virtual Machine) que se ejecuta dentro de él. Hay un límite en la memoria que un proceso puede demandar y es diferente para los distintos dispositivos y también difiere para los teléfonos y las tabletas. Cuando algún proceso exige una memoria superior a su límite, provoca un error, es decir, un error de memoria. Y puede ser cualquier razón que esté creando este escenario en su aplicación, entonces resultará un error OOM.
Según mi experiencia en Android, los desarrolladores de aplicaciones Android se enfrentan a este problema sobre todo con mapas de bits, base64.
Por favor, compruebe en qué parte de su código está cargando demasiados datos.
Consejo: Como se mencionó el mapa de bits o las estructuras de datos, si usted encuentra que luego tratar de borrar de la memoria una vez que el uso de ellos es done.
Don’t pensar en la tarea pesada en el hilo principal, ya que causará ANR no OOM.