Android 图片 OOM问题总结

XML布局中加载的图片是不用GC的,

他们是和View/Activity 绑定在一起,同生同死。

UI上加载的可以使用SoftReference让虚拟机进行快速回收。
如果迫切需要手动回收,严格控制内存开销,也许就该针对场景写Cache的管理了。

对于一般的场景,使用栈的结构就足够了,对于期望高效流畅又有着复杂item的ListView的话
可能需要预加载和手动回收。

--------------------------------------------------------------------------------------------------------

1.对图片进行预处理
主要是根据实际大小对对质量进行压缩

2.参考下android developer中的demo,里面有两点值得借鉴:一个是内存缓存,一个是disk缓存。可以很好的帮助你处理oom.

 

楼上所说的是LruCache,你好好研究下这个官方DEMO,研究明白了,你以后所有的项目都可以使用这个DEMO中的方式,绝对不会出现OOM。另外,在Gallery3D的源代码中,好像有另外一种cache方式。

 

--------------------------------------------------------------------------------------------------------

https://github.com/dodola/android_waterfall/tree/master/src/net   可以加载上万张图片的瀑布流

--------------------------------------------------------------------------------------------------------

 

 

--------------------------------------------------------------------------------------------------------

 

--------------------------------------------------------------------------------------------------------

posted @ 2013-03-06 10:44  bavariama  阅读(1695)  评论(0编辑  收藏  举报