Ограничение памяти приложения Android / iOS (уточнение) и Adobe Air - PullRequest
4 голосов
/ 14 сентября 2011

Я искал на этих форумах идею об ограничениях памяти, налагаемых на приложения, созданные с помощью Flex SDK и работающие в Android / iOS.Я изучил следующие сообщения здесь:

Насколько я понимаю, существует ограничение до 32 МБ для приложений, однако работающихприложение Adobe Air на Android дало мне гораздо больше, чем 32 МБ.Я весьма запутался в отношении этих понятий RAM, кучи и «ROM».Разве все они не одинаковы?По сути, я хотел бы знать, сколько «оперативной памяти» может получить процесс в действительности?

Из моего теста на Android я предположил, что это сумма следующих элементов:

  • Пространство кучи 32 МБ.
  • Общая память, возвращаемаяОС, убивая приложения с более низким приоритетом (?).
  • Объем свободной памяти.

Я также провел несколько тестов на iOS (приложение, упакованное с помощью Flex SDK), и оноПохоже, что на iPad (256 МБ ОЗУ) приложение вылетает после получения около 150 МБ ОЗУ.

Буду признателен, если кто-нибудь предоставит мне некоторые разъяснения. Я в основном ищу ответы на следующие вопросы:

  1. На Android это ограничение в 16, 24, 32 МБ наприложение все еще на месте?
  2. Если это так, то кто-нибудь знает, использует ли среда выполнения Air код C для доступа к большему объему оперативной памяти?(Я также проверю это на форумах Adobe).
  3. Если лимит не установлен или я его неправильно понял, каков фактический максимальный объем «ОЗУ», к которому может обращаться процесс, это сумма?элемента, о котором я упоминал выше, или есть какая-то другая формула?
  4. Кто-нибудь знает об ограничениях для платформы iOS (максимальный объем ОЗУ на приложение)?

Спасибо.

Ответы [ 2 ]

4 голосов
/ 24 января 2012

Да, ограничение памяти для каждого приложения остается в силе.В Android у каждого приложения есть свой экземпляр виртуальной машины и, следовательно, своя собственная кучная память (которая не используется совместно с другими приложениями) определенного фиксированного размера.Размер памяти кучи, выделяемой для приложения, устанавливается производителем и, таким образом, варьируется от мобильного телефона к мобильному и составляет от 16 до 64 МБ в зависимости от устройства.Размер кучи для конкретного приложения можно удвоить, включив android: largeHeap = "true" в атрибут файла манифеста (хотя это настоятельно не рекомендуется делать).Поэтому я предполагаю, что приложение 'Adobe Air' делает это.

Когда вы закрываете приложение, Android на самом деле не убивает его.Приложение работает в фоновом режиме, поэтому оно может быть быстро загружено при следующем открытии.Таким образом, только часть оперативной памяти вашего устройства выделяется для каждого приложения и, следовательно, жесткое ограничение для каждого приложения.

Я понятия не имею об iOS, хотя!

0 голосов
/ 26 июля 2012

У меня есть игра для iOS, основанная на C ++, которая иногда использует слишком много 256 МБ оперативной памяти моего iPad 1, и ОС останавливает ее. Таким образом, ограничение на iOS в основном OS + приложение (по оценкам 160 МБ). Должен упомянуть, что я вроде как останавливал другие приложения, когда запускаю его, так что больше ничего не работает в фоновом режиме.

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