Не только производители телефонов, но и все, кто создает версию ОС Android, могут указать максимально допустимый размер кучи в зависимости от конкретных требований своих устройств. Некоторые корни Android, такие как CyanogenMod, даже позволяют пользователю самостоятельно выбирать размер кучи в качестве параметра.
Вы можете определить максимально допустимый размер кучи, используя метод
Runtime.getRuntime().maxMemory();
Дополнительная информация по этой теме доступна здесь .
Если вашему приложению обычно требуется более 16 МБ кучи, рекомендуемый подход заключается в том, чтобы установить минимальный уровень версии ОС в вашем манифесте, который гарантирует, что подавляющее большинство пользователей, загружающих ваше приложение, будет иметь по крайней мере ту сумму, которая вам нужна, а затем найдите способ изящного снижения функциональности таким образом, чтобы при необходимости снизить требования к куче, до базового уровня 16 МБ, для небольшого числа пользователей с количеством кучи меньше оптимального, которое проходит через это сито.
Вот некоторые цифры, показывающие связь ОЗУ телефона с версией ОС (на основе текущей, а не оригинальной ОС). Я считаю, что телефон, имеющий как минимум 1 ГБ оперативной памяти, почти всегда будет иметь более 16 МБ памяти. Обратите внимание, что проценты здесь указаны для количества моделей телефонов , поддерживающих указанную память, а не общего количества используемых телефонов, что может быть весьма искажено для определенных моделей. Эти числа были получены путем подключения входов к следующему поисковику телефона (который включает 1500 моделей телефонов Android), и поэтому являются только приблизительными цифрами: http://www.gsmarena.com/search.php3
Процент телефонов моделей , имеющих не менее 1 ГБ ОЗУ, в зависимости от текущей версии ОС (не версии при запуске):
Phones running Percent of models having at least 1GB of RAM Percentage of all models
4.4 and up 100 percent 1.5
4.3 and up 100 percent 2.9
4.2.x and up 74 percent 18.7
4.1.x and up 71 percent 37
4.0 and up 62 percent 60
2.3.x and up 57 percent 71
2.2 and up 44 percent 93
2.1 and up 44 percent 97
ALL OS VERSIONS: 41.5 percent 100