Я пытаюсь написать простое приложение для Android.Я пытаюсь предварительно загрузить 7 изображений JPG, каждый размером ~ 75 КБ и разрешением 768x480.При запуске на HTC Flyer работает нормально.При запуске на HTC Evo 3D он вылетает.По-видимому, я выделяю слишком много памяти:
1658880-byte external allocation too large for this process.
Out of memory: Heap Size=6663KB, Allocated=4297KB, Bitmap Size=25278KB, Limit=32768KB
Trim info: Footprint=6663KB, Allowed Footprint=6663KB, Trimmed=452KB
VM won't let us allocate 1658880 bytes
Clamp target GC heap from 33.136MB to 32.000MB
, что кажется довольно странным.Я должен создавать меньшие изображения?Мне кажется маловероятным, учитывая сегодняшние экраны с высоким разрешением.Должен ли я увеличить размер кучи?Ну, это поддерживается только с Android 3.0.Каково правильное решение?Btw.код, который я использовал для предварительной загрузки изображений:
stringsImages = new Drawable[]{
getResources().getDrawable(R.drawable.strings0),
getResources().getDrawable(R.drawable.strings1),
getResources().getDrawable(R.drawable.strings2),
getResources().getDrawable(R.drawable.strings3),
getResources().getDrawable(R.drawable.strings4),
getResources().getDrawable(R.drawable.strings5),
getResources().getDrawable(R.drawable.strings6)
};
Чтобы избежать путаницы в вычислениях, я также использую ~ 5 МБ дополнительно для расчетов на аудиоданных.