首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PlayN安卓2.3.x OutOfMemory

PlayN安卓2.3.x OutOfMemory
EN

Stack Overflow用户
提问于 2012-06-19 15:33:15
回答 2查看 166关注 0票数 1

在我们的应用程序中,我们有很多图片。当他们需要的时候,我们以这样的方式得到他们:PlayN.assets().getImage("imageURL");

在android 2.3中,24mb的位图资源是有限制的。所以,当我在Screen2上显示图片(比方说游戏)时,我必须从Screen1中隐藏(卸载)图像(比方说简介)。我引用了来自Screen1的图像,可以调用clear()方法: CanvaseImage referenceToImage -I need to unload,referenceToImage.canvas().clear();

但是,这种方式不会在2.3.x中从安卓内存中卸载图像-( Android: Bitmap recycle() how does it work?...这篇文章告诉我应该在位图上调用recycle(),因为位图存储在非管理内存中,GC不能从那里收缩。)

如果不是从内存中卸载来自Screen1的图像,我有这样的安卓stackTrace:

代码语言:javascript
复制
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) 

在Android 2.3.x内存模型中,有没有办法调用playN回收位图的魔力呢?

EN

回答 2

Stack Overflow用户

发布于 2012-06-19 15:37:31

你已经看过关于内存管理的Google article了吗?他们确实对如何处理位图问题进行了相当深入的解释。

票数 1
EN

Stack Overflow用户

发布于 2012-06-19 15:37:59

为什么不使用LruCache来缓存位图呢?请参阅文章here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11096381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档