本文主要是介绍Android异常与性能优化之oom异常,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、oom定义
当前占用内存加上申请的内存资源超过了虚拟机的最大内存限制,就会抛出Out Of Memory
二、一些容易混淆的概念
内存溢出(oom) / 内存抖动 / 内存泄漏
内存抖动是指在短时间内有大量的对象被创建或者被回收的现象。
内存泄漏是指某一段内存在程序里功能上已经不需要了,但是垃圾回收机制回收内存时检测那段内存还是被需要的,不能被回收,这种在程序中在没有使用的但是又不能被回收的内存就是被泄漏的内存
三、解决oom
一般情况下,造成oom的原因:
加载对象过大和相应资源过多,来不及释放。
1、bitmap(一般都是加载过大的图片)
<1> 图片显示----在滑动的过程中(ListView)不加载图片,滑动停止时再加载<2> 及时释放内存---调用bitmap的recycle方法<3> 图片压缩----对大图片进行图片压缩,使用bitmap的insimpleSize<4> inBitmap高级属性<5> 捕获异常
2、其他方法
listview:复用机制避免在onDraw方法里执行对象的创建谨慎使用多进程
这篇关于Android异常与性能优化之oom异常的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!