Я провел последние несколько дней, пытаясь удалить утечки памяти в моей игре, в результате чего многие из ошибок в памяти. Я нахожусь на грани добавления значительного количества графических элементов, которые, хотя и не очень сложны, значительно улучшат требования к обработке моей системы, и я немного беспокоюсь о моем использовании памяти, и я надеялся, что кто-то может некоторые советы для меня. Я не хочу идти ниже Android 2.1, поэтому, пожалуйста, приложите любые ответы на эту тему.Как я могу грациозно снизить производительность, учитывая ограниченную память?
Прежде всего, моя игра состоит из:.
- 2 мероприятия, 13 XML-файлов (Некоторые относящихся к небольшой части макета, некоторые диалоговые окна и 2, непосредственно связанных с деятельностью
- A количество рисунков, сделанных в Adobe Illustrator и преобразованных в PNG. Вероятно, они большие, но не необычно большие, и по большей части в любой момент времени они хранятся только в небольших объемах.
- Довольно много диалогов.
- Ориентирован на Android 1.6 и выше.
- Я использовал новейший Admob, и в результате мне нужно построить против 3.2.
- Мой размер кучи по умолчанию для моих эмуляторов составляет около 24 МБ.
Несколько образцов изображения из моей игры:
То, что я узнал:
- Несмотря на мой общий размер приложения составляет всего около 500 тыс., я как-то забираю 24 Мега, как рассчитывается
adb shell procrank
. - Я сделал значительную оптимизацию, но не вижу больших увеличений в памяти.
- Использование инструментов для поиска того, что находится в куче, обычно показывает только около 7 МБ, используя около 3 МБ. Иногда при открытии новых диалогов и т. Д. Я вижу увеличение, но я не могу сказать, что я вижу, что он такой большой ...
- MAT показывает, что ни один из моих классов не использует необычно большой объем памяти ,
Итак, учитывая все это, мои вопросы.
- Есть ли 24 Mb фактическое требование для разработки (1.6+ android)?
- Предполагая, что это так, как я могу обеспечить более удобную графику для систем, которые могут ее обрабатывать, но не сбой и сжигание для старых систем?
- Каковы некоторые распространенные ошибки, которые я могу использовать для улучшения использования памяти?
LruCache также доступен в библиотеке поддержки http://developer.android.com/reference/android/support/v4/util/LruCache.html – dangVarmit