美文网首页
(二十五)OOM异常面试问题

(二十五)OOM异常面试问题

作者: lkmc2 | 来源:发表于2017-08-18 10:39 被阅读60次

    一、什么是OOM?

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

    二、一些容易出混淆的概念

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

    内存抖动:短时间内大量的对象被创建,又被马上释放,严重占用内存区。

    内存泄漏:进程中的某些对象已经没有被其他地方引用到,但是它会引用到其他还没有被回收的对象,导致GC无法产生作用,累计到一定程度会造成OOM。

    三、如何解决OOM?

    3.1有关bitmap

    1.图片显示 :在ListView滑动的时候不去调用网络请求,当滑动事件停止时才去调用网络请求,把图片加载到ListView上。

    2.及时释放内存 :调用recycle方法。

    3.图片压缩 :对加载的图片进行缩放。

    4.inBtimap属性 :可以让BitmapDecode解码器使用已经存在的内存区域,不会重新申请新的区域。

    5.捕获异常 :捕获Error,不是Exception。

    3.2其他方法

    1.ListView :使用convertView复用;大图使用LRU(最近最少使用)缓存机制进行复用。

    2.避免在onDraw方法里面执行对象的创建

    3.谨慎使用多进程

    相关文章

      网友评论

          本文标题:(二十五)OOM异常面试问题

          本文链接:https://www.haomeiwen.com/subject/xagorxtx.html