В моей консоли разработчика Android я вижу некоторые сбои с
Caused by: java.lang.OutOfMemoryError: (Heap Size=5795KB, Allocated=3859KB)
Меня удивляет особенно маленький размер кучи (менее 6 МБ).
Как мне интерпретировать этот размер кучи? Является ли этот размер кучи до вызова OOM? Могу ли я предположить, что максимальная куча составляет не менее 16 МБ? Если да, значит ли это, что я попытался выделить блок размером не менее 10 МБ (16 МБ - 6 МБ)?
Для проверки состояния памяти вы можете использовать следующее:
ActivityManager actMgr = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
ActivityManager.MemoryInfo minfo = new ActivityManager.MemoryInfo();
actMgr.getMemoryInfo(minfo);
if(minfo.lowMemory) { //do something
}