社区资源: Android有效解决加载大图片内存溢出问题及优化虚拟机内存 http://www.eoeandroid.com/thread-159376-1-1.html Android 内存溢出解决方案(OOM) 整理总结(转) http://www.eoeandroid.com/thread-199583-1-1.html android避免内存溢出 http://www.eoeandroid.com/thread-180008-1-1.html ---------------------帖子正文----------------------------- 写Android代码也有那么三四个月的时间了,也一直都是菜鸟,很多东西都只是拿来就用,也没有想太多的细节问题。 之前在程序中遇到图片资源的时候,总是使用
BitmapFactory.decodeResource
来设置图片资源,也没发现什么问题。前段时间在写一个动态壁纸程序的时候,可能图片资源比较多,毕竟手机内存还是有限的,程序跑起来有时会
抛
out of Memory
异常。
后来改用BitmapFactory.decodeStream方法,好像能解决问题。
后来在程序中去测试对比了一下,发现还是有比较大的差别的。同样是加载十张图片,我们先看看使用BitmapFactory.decodeResource后的内存占用情况:
运行结果是: 再来看看使用BitmapFactory.decodeStream的情况:
运行结果是: 从两个的运行结果中可以看出,使用 BitmapFactory.decodeResource 来设置图片资源要消耗更多的内存,如果程序中的图片资源很多的话,那这个内存就很客观啦。主要因为是 BitmapFactory.decodeResource 是通过Java层来createBitmap来完成图片的加载,增加了java层的内存消耗。而 BitmapFactory.decodeStream 则是直接调用了JNI,避免了java层的消耗。同时,在加载图片时,图片Config参数也可以有效减少内存的消耗。比如图片存储的位数及options.inSampleSize 图片的尺寸等。 |
android图片内存溢出问题-1
最新推荐文章于 2021-05-26 07:52:51 发布