Сколько памяти занимает каждый процесс Android?

Можем ли мы полагаться на наше приложение для Android, получающее заданное количество памяти, или это зависит от моделей телефонов или версий ОС?

Например, у меня есть кэш памяти, и я установил его ограничение на 5 МБ. Если на одном устройстве мое приложение получит только 8 МБ памяти, а на другом - 24 МБ, я бы хотел настроить кеш памяти, чтобы использовать больше или меньше памяти.

Есть ли способ понять это, количество даже варьируется?

Ответ 1

Да, максимальный размер кучи варьируется от устройства к устройству. Вы можете проверить устройство на примерный класс памяти приложения, вызвав getMemoryClass().

Возвращает приблизительный класс памяти приложения для текущего устройства. Это дает вам представление о том, насколько жестким является ограничение памяти, которое вы должны наложить на свое приложение, чтобы обеспечить наилучшую работу всей системы. Возвращаемое значение - в мегабайтах; базовый класс памяти Android - 16 (который, как оказалось, является куском Java-кучи этих устройств); некоторое устройство с большим объемом памяти может возвращать 24 или даже более высокие номера.

Единственный встроенный способ изменения размера кучи приложения - установка android:largeHeap="true" в AndroidManifest.xml. Это, как правило, увеличивает размер кучи от 48 до 128. Помните, что этот подход будет работать только на планшетах 3.x. В противном случае вам понадобится внедренное устройство, которое, очевидно, не является чем-то, на что вы хотели бы положиться как разработчик.

Ответ 2

Это может помочь вам

16 МБ - максимальный предел памяти, предоставляемый любому данному приложению для Android. Некоторые телефоны второго поколения возвращают 24 МБ памяти для каждого процесса или даже больше.

Каков максимальный предел памяти для каждого процесса или приложения в Android?