[Android]OOM的一些理解

1、什么是OOM

当前占用的内存加上我们申请的内存资源超过了Dalvik虚拟机的最大内存限制就会抛出的Out of memory异常。

2、容易混淆的概念

内存溢出:Out of memory

内存抖动:由于短时间内有大量对象进出Young Generiation区导致的,它伴随着频繁的GC

内存泄漏:在Java中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个特点,首先,这些对象是可达的,即在有向图中,存在通路可以与其相连;其次,这些对象是无用的,即程序以后不会再使用这些对象。如果对象满足这两个条件,这些对象就可以判定为Java中的内存泄漏,这些对象不会被GC所回收,然而它却占用内存

3、解决OOM

有关bitmap优化:图片显示-监听滑动事件等停止滑动时再去网络请求图片;及时释放内存;进行图片压缩;inBitmap属性;捕获oom异常

其他:listview  convertview/LRU;避免在onDraw执行对象创建(造成内存抖动);谨慎使用多进程

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注