Советы по экономии памяти при кодировании под андроид? - PullRequest
1 голос
/ 06 сентября 2010

В настоящее время я занимаюсь разработкой программного обеспечения под android и довольно быстро получаю некоторую OutOfMemoryException .... Я изменил некоторую часть своего кода, чтобы использовать больше статических переменных вместо того, чтобы делать новое выделение с помощью оператора "new", но есть ли что-то что еще делать? или какие-либо другие советы? Любые советы приветствуются.

Спасибо.

Ответы [ 4 ]

3 голосов
/ 06 сентября 2010

Здесь вы найдете множество советов: http://developer.android.com/guide/practices/design/performance.html

Особенно посмотрите на тему Избегайте создания объектов

1 голос
/ 07 сентября 2010

Возможно, вы обращаетесь к слишком большому количеству ресурсов (например, к изображениям), прежде чем сборщик мусора сможет их обработать или переработать. Если у вас есть доступ к особо крупным изображениям, используйте BitmapFactory, чтобы уменьшить их, как видно ответил на SO. (Конечно, для этого вы увидите что-то вроде «размер растрового изображения превышает бюджет vm» в вашей logcat). Есть еще подробности об ошибке?

1 голос
/ 07 сентября 2010

Если у вас есть ресурсы, которые можно в любое время перезагружать в память, рассмотрите возможность использования WeakReference s.Объекты внутри них будут очищены непосредственно перед тем, как виртуальная машина (Java) выдаст исключение OutOfMemoryException, поэтому будет доступно больше памяти.

1 голос
/ 06 сентября 2010

Вы также можете посмотреть некоторые конференции Google I / O, например, о написании неопасных приложений или о том, как создавать быстрые и эффективные приложения с 2009 года.

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