В нашем приложении у нас много изображений. Когда они нужны, мы получаем их в таким образом: PlayN.assets().getImage("imageURL");
PlayN Android 2.3.x OutOfMemory
В android 2.3 есть ограничение для 24 бит растровых ресурсов. Итак, пока показывая изображения на Screen2 (скажем, игра), я должен скрыть (выгрузить) изображения с Screen1 (скажем, Intro). У меня есть ссылка на изображение из Screen1 и я могу назвать четкий метод(): CanvaseImage referenceToImage - мне нужно выгрузить, referenceToImage.canvas().clear();
НО, - этот путь не выгружать изображения из памяти андроида в 2.3.x - (Android: Bitmap recycle() how does it work? ... этот пост сказать, что я должен вызвать рециркуляцию() на растровом изображении, так как растровые изображения сохраняется в памяти без управления и не могут быть усаживаются оттуда GC.)
и у меня есть такое StackTrace для андроид, если изображения с экрана 1 не выгружено из памяти:
06-11 09:16:45.197: E/AndroidRuntime(23621): FATAL EXCEPTION: GLThread
10
06-11 09:16:45.197: E/AndroidRuntime(23621):
java.lang.OutOfMemoryError: bitmap size exceeds VM budget(Heap
Size=9479KB, Allocated=6032KB, Bitmap Size=23347KB)
06-11 09:16:45.197: E/AndroidRuntime(23621): at
android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
06-11 09:16:45.197: E/AndroidRuntime(23621): at
android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:694)
06-11 09:16:45.197: E/AndroidRuntime(23621): at
playn.android.AndroidAssets.decodeBitmap(AndroidAssets.java:158)
06-11 09:16:45.197: E/AndroidRuntime(23621): at
playn.android.AndroidAssets.doGetImage(AndroidAssets.java:79)
06-11 09:16:45.197: E/AndroidRuntime(23621): at
playn.core.AbstractAssets.getImage(AbstractAssets.java:39)
Есть ли какой-нибудь способ вызвать магию playN «s для рециркуляции растровых изображений в модели памяти Android 2.3.x?