Если я правильно понял, процесс андроида имеет две кучи - одну управляемую VM и одну нативную.
Размер кучи VM не может превышать 16 МБ (по крайней мере, это значение может быть выше на некоторых телефонах).
Но как насчет максимального размера родной кучи?
Предел 16 мб не является жестким пределом в том, что приложение может выделять более 16 МБ через NDK, но ОС начнет убивать другие процессы и, возможно, процесс переднего плана, когда большой объем памяти используется.
Когда ОС начинает вести себя так? Когда размер кучи нативной кучи + VM превышает 16 МБ?
Debug.getNativeHeapSize() дает размер встроенной кучи, но есть ли функция для проверки объединенных значений кучи встроенной + VM?
Любопытно услышать от кого-то, кто знает, как это работает!