admin管理员组文章数量:1130349
图片缓存问题
在手机有限的内存中,图片占用的资源实在太大,如何有效的处理图片缓存,既不影响用户体验,又充足利用手机的内存,这是个很值得思考的问题。1、图片分辨率越高,尺寸越大,所占的内存也就越大。这时候,就需要做适当的处理,对图片进行一定比例压缩,并设置最佳解码方式( 默认为ARGB_8888: 每个像素4字节. 共32位。 Alpha_8: 只保存透明度,共8位,1字节。 ARGB_4444: 共16位,2字节。 RGB_565:共16位,2字节。 如果不需要透明度,可把默认值ARGB_8888改为RGB_565,节约一半内存 )。
2、在需要展示很多图片的场景下,用软引用的方法可让系统偏向于回收闲置的对象。但这个方法不太稳定。
另外一种方法,使用LruCache缓存, 当存储Image的大小大于LruCache的值,系统会自动释放内存,并且释放不太被常用到的图片对象。( LruCache是一种算法,会移除不常用到的图片 )
3、文件缓存。有效利用手机SD卡, 读取速度会慢于内存,但在内存吃紧时可大大降低内存压力。
4、在需要清理缓存的时候,及时去清理垃圾数据,避免产生oom问题
图片缓存问题
在手机有限的内存中,图片占用的资源实在太大,如何有效的处理图片缓存,既不影响用户体验,又充足利用手机的内存,这是个很值得思考的问题。1、图片分辨率越高,尺寸越大,所占的内存也就越大。这时候,就需要做适当的处理,对图片进行一定比例压缩,并设置最佳解码方式( 默认为ARGB_8888: 每个像素4字节. 共32位。 Alpha_8: 只保存透明度,共8位,1字节。 ARGB_4444: 共16位,2字节。 RGB_565:共16位,2字节。 如果不需要透明度,可把默认值ARGB_8888改为RGB_565,节约一半内存 )。
2、在需要展示很多图片的场景下,用软引用的方法可让系统偏向于回收闲置的对象。但这个方法不太稳定。
另外一种方法,使用LruCache缓存, 当存储Image的大小大于LruCache的值,系统会自动释放内存,并且释放不太被常用到的图片对象。( LruCache是一种算法,会移除不常用到的图片 )
3、文件缓存。有效利用手机SD卡, 读取速度会慢于内存,但在内存吃紧时可大大降低内存压力。
4、在需要清理缓存的时候,及时去清理垃圾数据,避免产生oom问题
本文标签: 图片缓存问题
版权声明:本文标题:图片缓存问题 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://it.en369.cn/jiaocheng/1700747241a366976.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论