我是靠谱客的博主 会撒娇帅哥,最近开发中收集的这篇文章主要介绍OOM异常,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在Android中OOM异常是比较常见的异常之一,那么OOM异常是如何产生的呢?又是如何解决的呢?Android中产生OOM异常的常见场景又有那些呢?

1.首先了解产生OOM异常的一个分析,主要从三个方面来诠释。

1)内存溢出:指程序在申请内存时,没有足够的空间供其使用(这个是最主要的);

2)内存泄露:指程序分配出去的内存不再使用,无法进行回收;

3)内存抖动:指程序短时间内大量创建对象,然后回收的对象。


2.那么分析一下在Android中导致以上三个内存问题的常见场景(以下为什么这些场景导致的这些问题不做解释,可以在Android系列的前面的一些文章中可以找到“为什么”)。

1)内存溢出:如加载大图片时,容易导致的问题(这个是最主要的);

2)内存泄露:如使用Handler时,容易导致的问题;

3)内存抖动:如多次点击Button按钮时,容易导致的问题;


3.如何解决我所举例的这些场景所产生的问题呢?

1)加载大图片时导致的内存溢出:压缩图片,及时释放内存,图片的显示(listView在滑动时,不进行图片的网络请求,要重用convertView,使用Lru缓存机制)。建议使用一些好的图片加载框架,如Glide,Picasso等(如果是专做加载图片类型的APP的话,建议使用Fresco图片加载框架)。

2)使用Handler到时的内存泄露可以查看前几篇文章中的Android性能优化之handler的正确使用与解析

3.多次点击button导致的内存抖动可以查看Android Rx2.0系列中的RxBinding2.0这篇文章中有介绍是如何去解决。


最后

以上就是会撒娇帅哥为你收集整理的OOM异常的全部内容,希望文章能够帮你解决OOM异常所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部