Размер кучи Android на разных телефонах / устройствах и версиях ОС - PullRequest
71 голосов
/ 18 марта 2011

Кто-нибудь знает, является ли размер кучи на телефонах Android постоянным значением в зависимости от того, что установлено в версии ОС, или это настройка, которую могут выбирать производители телефонов?пропорционально объему оперативной памяти на телефоне?

Я нашел только статьи, в которых люди говорят, что размер кучи приложения составляет 16M.Однако эти статьи немного устарели.Из того, что я вижу в качестве примера, размеры кучи варьируются от 20 до 24 м в одной конкретной модели.Этот телефон имеет 768M RAM.

Ответы [ 7 ]

122 голосов
/ 30 марта 2012

Дополнительная информация об устройстве, извлеченная из файлов build.prop (adb -d pull /system/build.prop):

Телефоны (версия для Android):

  • HTC Wildfire (2.2.1) = 16 МБ
  • HTC Wildfire S (2.3.5) = 20 МБ
  • HTC Salsa (2.3.3) = 20 МБ
  • HTC Desire (2.3.3)= 32 МБ
  • HTC Desire S (2.3.5) = 32 МБ
  • Sprd - Richview - S111 (2.3.5) = 32 МБ
  • Samsung Galaxy S GT-I9000 (2.2) = 48 МБ
  • Samsung Galaxy R GT-I9103 (2.3.5) = 64 МБ
  • Samsung Galaxy Y GT-S5360 (2.3.5) = 64 МБ
  • Samsung Galaxy NoteN7000 (4.1.2) = размер кучи = 8 м, ограничение размера кучи = 64 м, размер кучи = 256 м
  • Samsung Galaxy S3 GT-I9300 (4,3, xhpdi) = 8/64/256 МБ
  • Samsung Galaxy S4GT-I9505 (4.4, xxhpdi) = 8/128/512 МБ
  • Google Galaxy Nexus (4,3) = 8/96/256 МБ
  • Google Nexus 4 (4.4, xhdpi) = 8/192/ 512 МБ
  • Google Nexus 5 (4.4, xxhdpi) = 8/192/512 МБ
  • Samsung Galaxy S6 SM-G920W8 (7,0) = 8/256/512 МБ

Планшеты (версия для Android):

  • Samsung Galaxy Tab GT-P1000 (2.2) = 48 МБ
  • Samsung Galaxy Tab 8.9 GT-P7300 (3.2)= 5/64 / 288MB
  • Samsung Galaxy Tab 10.1 GT-P7500 (3.2) = 5/64 / 288MB
  • Samsung Galaxy Tab 3 10.1 GT-P5200 (4.2, mdpi) = 8 /96 / 256MB
  • Acer Iconia A500 (3.2.1) = 5/48 / 256MB
  • Kindle Fire HD 7 "(4.0.3) = 5/48 / 256MB
  • Asus Transformer Prime TF201 (4.1.1) = 5/48/256 МБ
  • Nexus 10 (4.4.3) 16/192/512 МБ
51 голосов
/ 18 марта 2011

Кто-нибудь знает, является ли размер кучи на телефонах Android постоянным значением в зависимости от того, что установлено в версии ОС, или это настройка, которую могут выбрать производители телефонов?

Технически, это настройка, по которой производители телефонов могут выбирать.Android с открытым исходным кодом.Я не помню, чтобы в документе «Определение совместимости» были изложены требования к размеру кучи, хотя я недавно не смотрел.

Размер кучи пропорционален объему оперативной памяти телефона?

Нет, как правило, он больше основан на разрешении экрана, поскольку экраны с более высоким разрешением стремятся манипулировать большими растровыми изображениями, поэтому Google дает рекомендации по размеру кучи, которые, надеюсь, производители устройств будут соблюдать.

Я нашел только статьи, в которых люди говорят, что размер кучи приложения составляет 16M.

При поиске в StackOverflow [android] "heap size" появляется этот ответ .

20 голосов
/ 09 мая 2012

Не только производители телефонов, но и все, кто создает версию ОС 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
11 голосов
/ 22 мая 2012

Вы должны быть в состоянии проверить максимальный размер виртуальной памяти, используя:

getprop dalvik.vm.heapsize

в терминале Android (connectbot или adb shell и т. Д.)Также можно перемонтировать чтение и запись и установить размер кучи в файле build.prop.(Убедитесь, что у вас установлено восстановление, чтобы вы могли переустановить его, если случайно сделаете его слишком маленьким, он не загрузится).

9 голосов
/ 19 апреля 2013

Существует фактически определенный минимальный объем памяти приложения, который зависит от размера и плотности экрана:

Мобильные устройства обычно имеют ограниченные системные ресурсы. Android устройства могут иметь всего 16 МБ памяти, доступной одному приложение. Документ определения совместимости Android (CDD), Раздел 3.7. Совместимость виртуальных машин дает необходимый минимум память приложения для экрана различных размеров и плотности. Приложения должны быть оптимизированы для работы под этим минимальным объемом памяти предел. Тем не менее, имейте в виду, что многие устройства настроены с более высоким пределы.

Цитируется из: http://developer.android.com/training/displaying-bitmaps/index.html

Но, как утверждают другие, каждый производитель устройства определяет фактическое значение для устройства, поэтому оно может быть больше (но не меньше).

В упомянутом документе определения совместимости (CDD) перечислены минимальные требования для каждой версии Android: https://source.android.com/compatibility/cdd.html

Для последней версии Android доступна версия HTML, и мы можем напрямую связать ее с разделом памяти времени выполнения: https://source.android.com/compatibility/android-cdd.html#3_7_runtime_compatibility

для Android 2.3:

Реализации устройств с экранами, классифицированными как средний или с низкой плотностью * ДОЛЖЕН настроить Dalvik для выделения не менее 16 МБ памяти для каждого приложения. Реализации устройств с экранами, классифицированными как высокой плотности или сверхвысокой плотности ДОЛЖНЫ настроить Dalvik для распределения не менее 24 МБ памяти для каждого приложения. Обратите внимание, что устройство реализации МОГУТ выделять больше памяти, чем эти цифры.

Для современных версий вместо этого есть таблица, где это зависит от плотности экрана и т. Д .:

Для Android 4.2 пример строки из этой таблицы:

маленький / нормальный / большой размер и плотность xhdpi: 64 МБ

Для Android 6, извлечение:

маленький / обычный xhdpi: 80 МБ

маленький / обычный xxhdpi: 128 МБ

маленький / обычный xxxhdpi: 256 МБ

В этих документах также есть таблица для других версий Android 2.x, 4.x, 5.x и 6 (см. Ссылку CDD выше).

Обратитесь к этой ссылке Google, чтобы легко найти плотность экрана и т. Д. Для конкретных устройств: https://design.google.com/devices/

9 голосов
/ 19 августа 2011

«Бюджет виртуальной машины», который разрешено использовать приложению, зависит от устройства. Таблетки обычно позволяют больший бюджет, чем телефоны.

Вот некоторые размеры бюджетов виртуальных машин, которые я нашел для различных устройств.

  • G1 = 16 Мб
  • Дроид = 24 МБ
  • Nexus One = 32 Мб
  • Xoom = 48 МБ
  • GalaxyTab = 64 Мб.

(Примечание: если вы нашли по-другому, дайте мне знать)

0 голосов
/ 06 июля 2016

Эти данные работают на меня. Выбрать Эмулятор планшета Android TV RAM 1536MB VM HEAP 16MB Внутренняя память 800 МБ Студия -управляемая 100

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...