Мне очень интересен этот вопрос относительно управления памятью операционной системы Android, поэтому я надеюсь на довольно подробный ответ на эту тему.
Что я хотел бы знать:
- Что такое максимальный объем памяти (в мегабайтах/as процент от общей ОЗУ), который может использовать приложение Android (это не системное приложение)?
- Существуют ли различия между версиями Android?
- Существуют ли какие-либо отличия в отношении производителя устройства?
И самое главное:
- Какие "боковые факторы" учитываются / , что зависит от, когда дело доходит до системы, определяющей, сколько ОЗУ приложение может использовать во время выполнения (при условии, что что максимум памяти для каждого приложения не является статическим числом)?
То, что я слышал до сих пор (до 2013 года):
- У ранних Android-устройств была кепка для каждого приложения размером 16 МБ.
- Позже эта кепка увеличилась до 24 МБ или 32 МБ
Что мне очень любопытно:
Оба этих предела очень низкие.
Недавно я загрузил "Диспетчер задач Android" , чтобы проверить оперативную память устройств. Я заметил, что есть приложения, использующие около 40-50 мегабайт оперативной памяти, что является obvioulsy больше, чем упомянутое максимальное использование ОЗУ, скажем, 32 МБ. Итак, как Android определяет, сколько оперативной памяти может использовать приложение? Как возможно, что приложения превышают этот предел?
Кроме того, я заметил, что некоторые приложения моей аварии (убитые системой?) с OutOfMemoryException при использовании около 30-40 мегабайт. С другой стороны, у меня есть приложения, запущенные на моем телефоне, используя 100 МБ и более через некоторое время (возможно, из-за утечек памяти), которые не сбой или не уничтожаются. Таким образом, , очевидно, также зависит от самого приложения, когда дело доходит до определения того, сколько ОЗУ можно будет сэкономить. Как это возможно? (Я провел тесты с HTC One S с ОЗУ 768 МБ)
Заранее благодарю за ваше объяснение.
Отказ от ответственности: я НЕ СВЯЗАН с Android Task Manager.