Существует ли минимальный размер кучи для версий Android?
Во многих публикациях говорилось о размере кучи Android, и на данный момент я обнаружил, что единственное, что обычно касается максимального размера кучи, это то, что он составляет не менее 16 МБ, но это был предел со времени API 3. Для использования большего объема памяти, люди будут предлагать использовать NDK или что-то, что выходит за рамки "нормальной" разработки Android.
Есть ли какая-либо версия Android, требующая от устройств иметь больший размер кучи, чтобы я мог начать брать больший размер и перестать быть настолько дешевым в памяти?
Есть ли также требование относительно флага большой кучи (из API 11 - соты) внутри манифеста, или это неопределенный запрос, чтобы устройство могло даже игнорировать его?
Просто за последние годы аппаратное обеспечение Android значительно улучшилось, но нам все еще нужно быть настолько дешевым в памяти, хотя устройства теперь имеют более 1 ГБ ОЗУ. И странно, что мы не можем попросить у ОС дать нам определенный размер кучи и пообещать, что мы больше не будем использовать это.
1 ответ
Хорошо, я наконец нашел ответ (спасибо этому посту):
Минимальный минимум для всех версий Android (включая 5) составляет 16 МБ.
Требования к каждой из версий Android можно прочитать здесь:
http://source.android.com/compatibility/downloads.html
о них можно прочитать, открыв файлы CDD и выполнив поиск "Совместимость во время выполнения" (или "Совместимость виртуальных машин" для старых версий). Кроме того, вы можете найти минимальные требования к оперативной памяти, выполнив поиск "Память и память", но я думаю, что это только требование для самой системы.
так, например, на 4.0.3 - 5 минимальный размер кучи:
- 16 МБ: маленький / обычный с ldpi/mdpi или большой с ldpi
- 32 МБ: маленький / обычный с tvhdpi/hdpi или большой с mdpi
- 64 МБ: маленький / обычный с xhdpi, или большой с tvdpi/hdpi, или большой с mdpi.
- 96 МБ: маленький / обычный с 400 точек на дюйм, или большой с tvhdpi/hdpi
- 128 МБ: маленький / обычный с xxhdpi или большой с xhdpi
- 192 МБ: маленький / обычный с 560 точек на дюйм, или большой с 400 точек на дюйм, или большой с xhdpi.
- 256 МБ: маленький / обычный с xxxhdpi или большой с xxhdpi
- 288 МБ: большой с разрешением 400 точек на дюйм
- 384 МБ: большой с 560 точек на дюйм или большой с xxhdpi
- 512 МБ: большой с xxxhdpi
- 576 МБ: большой с 560 точек на дюйм
- 768 МБ: xlarge с xxxhdpi
Я не могу найти минимальный размер кучи для версий 3.x, но он, вероятно, такой же, как 4.0.3 .
для 2.1 - 2.3 минимальный размер кучи:
Реализации устройств с экранами, классифицированными как средние или с низкой плотностью, ДОЛЖНЫ конфигурировать Dalvik для выделения как минимум 16 МБ памяти для каждого приложения. Реализации устройств с экранами, классифицированными как высокоплотные или сверхплотные, ДОЛЖНЫ конфигурировать Dalvik для выделения как минимум 24 МБ памяти для каждого приложения. Обратите внимание, что реализации устройства МОГУТ выделять больше памяти, чем эти цифры.
имея в виду:
- средний экран или ldpi - 16 МБ
- HDPI или XHDPI - 24 МБ
я не могу найти минимальный размер кучи для версии 1.6, но он, вероятно, совпадает с 2.1 .
Кроме того, я не могу выяснить, что должен делать флаг большой кучи для каждой из версий Android (начиная с 3.0) .