L'erreur OOM survient lorsque l'allocation franchit la limite du tas ou que votre processus demande une quantité de mémoire qui franchit la limite du tas.
Dans Android, chaque application s'exécute dans un Processus Linux. Chaque processus Linux possède une machine virtuelle (Dalvik Virtual Machine) qui s'exécute en son sein. Il y a une limite sur la mémoire qu'un processus peut demander et elle est différente pour différents appareils et diffère également pour les téléphones et les tablettes. Lorsque certains processus demandent une mémoire plus élevée que sa limite, cela provoque une erreur c'est-à-dire Out of memory error.
Les informations ci-dessus sont pour expliquer pourquoi l'erreur OOM vient. Et cela peut être n'importe quelle raison qui crée le senerio ci-dessus dans votre application alors il en résultera une erreur OOM.
Selon mon expérience dans Android le développeur d'applications Android fait face à ce problème surtout avec bitmap, base64.
Veuillez vérifier où dans votre code vous chargez trop de données.
Introduction : Comme mentionné bitmap ou structures de données, si vous trouvez cela alors essayez de les effacer de la mémoire une fois que leur utilisation est terminée.
Ne'pensez pas à une tâche lourde sur le thread principal car cela provoquera un ANR et non un OOM.