Ограничение размера кучи Android, нам все еще нужно разрабатывать приложения с учетом ограничения в 16 МБ? - PullRequest
6 голосов
/ 20 января 2012

Как следует из заголовка, должен ли я по-прежнему разрабатывать свое приложение с ограничением размера кучи в 16 МБ? Причина, по которой я спрашиваю, состоит в том, что я недавно разрабатывал игру, которая прекрасно работает на моем почти 2-летнем Droid 2. Но когда я тестирую свое приложение, используя AVD с ограничением размера кучи в 16 МБ, у меня возникают ошибки памяти. Мониторинг моего приложения с помощью DDMS показывает, что общий объем памяти, выделенный для моей игры, составляет около 20 МБ. Это не большая разница, но заставить мою игру работать под этим пределом в 16 МБ действительно повредило бы визуальные эффекты.

Теперь, если бы это был 2008 год, я бы даже не задавал этот вопрос. Но это 2012 год, почти через 4 года после дебюта G1. Можно ли с уверенностью сказать, что большинство телефонов, выпущенных в прошлом году, позволяют приложениям выделять более 16 МБ памяти? Или я действительно облажался, не разрабатывая свое приложение с учетом ограничения в 16 МБ?

Ответы [ 2 ]

6 голосов
/ 20 января 2012

Предел кучи зависит от разрешения устройства (и, возможно, также от других факторов).Таким образом, на устройстве с высоким разрешением ограничение кучи может составлять 30 МБ, а на низком разрешении G1 - 16 МБ.Обычно вам следует соответствующим образом изменить графику, чтобы устройства с низким разрешением использовали графику с низким разрешением (которая занимает меньше места), а устройства с высоким разрешением - графику с высоким разрешением (которая занимает больше места).

2 голосов
/ 20 января 2012

Да, мы все еще нуждаемся в этом, но не в каждом случае.Если вы используете собственный код, то память, выделенная компилятором c, не включает в это ограничение. Таким образом, вы можете выделить больше памяти для основного компонента приложения.и второй способ заключается в использовании текстуры для рисования изображений с использованием OpenGL. затем память для этих текстур не включает в себя ограниченную память.

Но эта техника не может быть реализована в каждом случае

Еще один важныйвещь, вы не можете использовать эти 30 МБ полностью также. Только 30% из них можно использовать для одного приложения.

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