一、原因
1、加载对象过大
2、相对应的资源过多,来不及释放
二、解决
1、在内存引用上做处理(强、软、弱)(ImageLoader 开源框架)
2、获取图片时压缩获取(边界压缩)
3、优先实现缩略图
4、防止同时加载太多,Listview需要的时候才去加载
5、用完马上释放,防止内存泄露, recycle()
6、尽量不用 setImageBitMap setImageResource 和BitmapFactory.decodeBitmap 来设置一张大图,因为decode完后是通过JAVA层来creatBitmap
使用BitmapFactory.decodeStream - > Bitmap
JNI - > nativateDecodeAsset来decode
缺点:hdpi mdpi都需要放图片
7、android:LagerHeap = true
缺点:不要因omm使用。因为需要更多时间去gc,意味着性能越来越差