根据我之前项目的经验,可以考虑以下几种方法:
1. 将viewgroup中的child view 移除。 viewgroup.remove(...);
2. 每个应用的内存空间都是由android分配固定大小的内存,可以考虑将应用内存的1/4赋予LRUCache(android中的API)。 softreference 不建议使用。
当内存达到指定上限时,LRUCache有相应算法踢出缓存项。
3. 可以考虑将图片调整(压缩等)为控件(ImageView)适合的大小。
光大项目打算同时采用这三种方法, 当时由于时间原因只应用了 第一种方法。 其余两种方法可以考虑附加上。
第一种方法: 个人感觉是一定要加的,根据之前的经验的话,项目上内存泄露是最大的问题,view是重量级的,view context的泄露比较严重,第一种方法可以一定程度上解决。
解决OOM是一个头疼问题,考虑的问题比较多,比如设备的分辨率(高分辨率显示图片需要更大的内存),图片的大小等等。
这是我的建议,大家有其他好的建议可以一起讨论。