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 可以加载上万张图片的瀑布流
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------