Как приложение Android может использовать> = 256 МБ ОЗУ? - PullRequest
3 голосов
/ 23 января 2011

Насколько я знаю, каждый Android-телефон ограничивает все приложения максимальным использованием памяти около 16, 24 или 32 МБ.Я только что видел людей, обсуждающих приложение Dungeon Defenders, которое, похоже, использует 256 МБ ОЗУ.

Описание приложения: «Минимальные требования: 512 МБ ОЗУ (256 во время выполнения)» http://www.appbrain.com/app/dungeon-defenders%3A-first-wave/com.trendy.ddapp

Руководство по запуску этой игры на Droid (где для запуска игры требуется 256 МБ ОЗУ бесплатно): http://www.forums.trendyent.com/showthread.php?447-How-to-play-Dungeon-Defenders-on-your- Motorola-Droid-Milestone- (Требуется-root)

Как это возможно?Кто-нибудь знает, что здесь происходит?Имея доступ к такому объему оперативной памяти, можно было бы легче писать некоторые проекты, над которыми я работаю, поэтому мне очень интересно знать, что делает эта игра.

Ответы [ 4 ]

1 голос
/ 23 января 2011

На droidcon в Берлине, Германия, я слышал, что вы не можете увеличить объем оперативной памяти, которую приложение может использовать на стороне dalvik. Вы можете использовать всю доступную память на нативной стороне, поэтому я предполагаю, что названное приложение реализовало тяжелую память, встроенную в C, используя NDK. Это единственное возможное решение, которое я знаю ...

Обновление Это была не конференция, а посещение лаборатории Google в моем университете с Рето Майером и его коллегами.

0 голосов
/ 03 апреля 2011

Если вам не нужно визуализировать изображение в режиме реального времени, ответ прост: просто отправьте изображение на свой сервер, с помощью какой-либо команды обработки изображения, отредактируйте его и отправьте обратно в Android. Если вашему приложению требуется более 256 МБ ОЗУ, вы сильно ограничите свою аудиторию, и это не хорошо.

0 голосов
/ 03 апреля 2011

Я использую NDK для своего приложения. и для моего устройства тестирования, когда я беру больше 16 МБ (HTC magic, android 2.2), приложение вылетает, и система выдает исключения для доступа по недействительным адресам. Так что нет, вы не можете использовать всю нужную вам память ни с нативной, ни с Java-управляемой стороны.

Я читал об использовании различных библиотек .so и загружал их при запуске приложения, но я не знаю, как оно работает или является ли это приемлемым решением. Какие-либо предложения?

0 голосов
/ 23 января 2011

Насколько я знаю, Android может использовать более 256 МБ ОЗУ с 2.2
Однако большинство телефонов показывает меньше, чем они имеют, потому что всегда есть какой-то Ram, зарезервированный для системы.

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