L'errore OOM arriva quando l'allocazione supera il limite dell'heap o il tuo processo richiede una quantità di memoria che supera il limite dell'heap.
In Android, ogni applicazione viene eseguita in un processo Linux. Ogni processo Linux ha una macchina virtuale (Dalvik Virtual Machine) che gira al suo interno. C'è un limite alla memoria che un processo può richiedere ed è diverso per i diversi dispositivi e differisce anche per i telefoni e i tablet. Quando un processo richiede una memoria superiore al suo limite, causa un errore, cioè Out of memory error.
Le informazioni di cui sopra sono per spiegare perché arriva l'errore OOM. E può essere qualsiasi motivo che sta creando il senerio di cui sopra nella vostra applicazione allora risulterà un errore OOM.
Secondo la mia esperienza in Android gli sviluppatori di applicazioni Android affrontano questo problema soprattutto con bitmap, base64.
Si prega di controllare dove nel vostro codice state caricando troppi dati.
Suggerimento: come menzionato bitmap o strutture di dati, se lo trovate provate a cancellarli dalla memoria una volta che l'uso di essi è finito.
Non'pensare a compiti pesanti sul thread principale perché causerà ANR non OOM.