OOM 异常出现的根本原因是 –运行时内存不足,一般情况是:UI中加载有大图或者大对象,然后,对大图没有进行压缩处理、也没有采用一些优化内存的机制来处理,在UI关闭销毁时没有进行回收,无用对象没有进行手动置空,这样的话底层jvm是不会自动GC的,所以,会造成UI运行时程序出现OOM问题。
一般解决思路:
多媒体对象进行压缩存储,一般图片对象是根据图片大小来做相应的压缩处理,加载时可以采用第三方加载框架来处理:
方法1: ImageLoader 来加载(强大的开源框架) +图片压缩
方法2: 结合LruCache和DisLruCache来处理图片,因为手机的一般运行内存是32MB,所以,我们一般是将运行内存的1/8大小来加载图片,利用LruCache来装在图片,内部实现的是LRU算法,所以可以实现有效的加载,防止内存溢出,大多数情况下,我们是网络加载,所以需要本地缓存,这时可以利用DisLruCache来加载,原理是一样,只是会在本地有缓存.
方法3:faceBook最新的fresco开源项目来处理图片OOM问题…
后续….
android——OOM异常和解决
最新推荐文章于 2022-09-22 15:06:57 发布