Распределение памяти Android

Я добираюсь, «растровый размер превышает бюджет VM» ошибка. Я прочитал, что есть предел памяти 16 МБ. В этой нити Ромен Ги говорит, что «Вы можете только ассигновать 16 МБ памяти для Вашего всего заявления».

Однако мое приложение должно исчерпывать память задолго до того, как это достигает того предела. Таким образом, мой вопрос: как я ассигную память своему заявлению..., как я могу добраться, распределение на мое приложение увеличилось (в максимуме 16 МБ)?

16
задан prepbgg 25 January 2010 в 11:40
поделиться

2 ответа

Как и в случае любой виртуальной машины Java, объем динамической памяти автоматически увеличивается до максимального размера. Но растровые изображения размещаются вне виртуальной машины, поэтому их не очень легко увидеть в статистике. Лучшее, что вы можете сделать, это убедиться, что вы не используете большие растровые изображения, или уменьшить их, используя
http://developer.android.com/reference/android/graphics/BitmapFactory.Options .html

Из Eclipse вы можете создавать дамп кучи, когда вы работаете на Android 1.6 или выше, и вы можете анализировать дамп с помощью Eclipse MAT.

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

На developer.android.com должна быть статья о сбросе кучи на 1.6, но я не могу ее найти. : (

Редактировать
Кроме того, я должен упомянуть, что вы можете запросить больше памяти для приложений, используя

android: largeHeap = «true»

в манифесте. Но это крайне опрометчиво, так как большинству приложений это не нужно.

36
ответ дан 30 November 2019 в 15:35
поделиться

Если вы используете потоки, источником проблемы может быть отладчик. Если вы запустите приложение в отладчике, то все созданные потоки будут по-прежнему сохраняться в отладчике, даже когда они завершат работу. Это приводит к ошибкам памяти, которые не будут возникать, когда приложение работает без отладчика.

http://code.google.com/p/android/issues/detail?id=7979

https://android.googlesource.com/platform /dalvik/+/master/docs/debugger.html

6
ответ дан 30 November 2019 в 15:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: