Итак, у меня есть приложение, которое зацикливается и непрерывно рисует множество файлов png на холсте.В конструкторе для потока для некоторых png я объявляю Drawable и некоторые растровые дескрипторы и назначаю их (соответственно) следующим образом:
Drawablename = context.getResources().getDrawable(R.drawable.pngresource);
mBackgroundImage = BitmapFactory.decodeResource(res, R.drawable.bckgrnd);
Имейте в виду, что я делаю оба метода, МНОГИЕ раз.(хотя большинство изображений довольно маленькие)
Ну ... проблема, которую я получаю, заключается в том, что при попытке запустить это приложение на старых устройствах (особенно на оригинальном дроиде и старше) оно принудительно закрываетсяс ошибкой бюджета виртуальной машины.
Из исследований я заметил, что это, кажется, общая проблема.(Приложение отлично работает на всех новых устройствах, таких как droid x, на каждом планшете, в лучшем случае покупайте, заряжайте, atrix и т. Д.)
Итак, мой вопрос, могу ли я сделать что-то лучше?Является ли один из этих методов ссылки на PNG лучше?Также что именно здесь происходит?Мне нужно иметь возможность ссылаться на изображение для рисования в любое время.Другими словами, в любой момент я мог вызвать Draw на одной из ручек.
Исправления, которые я видел для подобных проблем, включали вызов Сборщика мусора, но поможет ли это мне, так как мне понадобятся Изображения позже?Или это исключительно проблема с тем, как я ссылаюсь на png из папки drawable?
Извините, если это сбивает с толку, я новичок.
Если бы я вызывал System.gc () после каждой ссылки, это помогло бы, даже если ссылка все еще сохраняется как объект Drawable