Android面试——OOM及ANR
来源:互联网 发布:redis 数据库查询 编辑:程序博客网 时间:2024/06/09 17:52
一、什么是oom?
OOM就是当前占用的内存加上我们申请的内存资源超过了Dalvik虚拟机的最大内存限制就会抛出的Out Of
Memory的异常,主要是因为过多的内存泄漏造成的OOM。
二、造成OOM的主要原因有哪些?平时开发中需要注意什么?
bitmap是内存消耗大户,所以为了避免出现oom,首先要对bitmap进行优化:
1.图片显示:如:显示缩略图时不调用网络请求加载大图、ListView滑动时不加载图片
2.及时释放内存
3.图片压缩:控制图片大小
4.inBitmap属性:加载新图片会使用之前图片所在的内存空间
5.使用缓存策略:如lru(将最近最少使用的图片清除出缓存)
其他原因及注意:
1.不恰当的使用static关键字。 尽量不要使用static保存对象。
2.内部类对Activity的引用。 内部类对象如果引用Activity对象,同时有很长的生命周期的话会导致 Activity对象释放不及时。
3.Bitmap使用。 大量的bitmap会导致 程序包和运行时的内存消耗变大。
4.游标cursor的使用。 Cursor 对象用完应该及时关闭。
5.避免在onDraw方法里面执行对象的创建
6.谨慎使用多线程
三、内存溢出OOM / 内存抖动 / 内存泄漏这三者是什么关系?
OOM是当前占用的内存加上我们申请的内存资源超过了Dalvik虚拟机的最大内存限制;
内存抖动是短时间内大量的对象被创建,然后又被马上释放;
内存泄漏指无用对象持续占有内存或得不到及时释放,从而造成的内存空间的浪费,过多的内存泄漏会造成OOM.
阅读全文
0 0
- Android面试——OOM及ANR
- Android 系统稳定性---OOM,ANR
- Android中的ANR和OOM
- ANR&OOM
- android开发之详解ANR与OOM
- Android面试准备:ANR浅析
- Android—OOM原理
- Android——ANR异常
- Android显示图片避免OOM和ANR小结
- Android显示图片避免OOM和ANR小结
- Android显示图片避免OOM和ANR小结(转)
- Android显示图片避免OOM和ANR小结
- Android显示图片避免OOM和ANR小结
- ANR&MVC&OOM
- About ANR and OOM
- Android ANR异常及解决方法
- Android ANR异常及解决方法
- Android ANR异常及解决方法
- 算法竞赛_分数化小数_C++
- 深度学习在 CTR 中应用
- 无线传感器网络中扫描覆盖现在研究的问题
- HDU 1039 Easier Done Than Said? (字符串)
- Zookeeper部署 ./zkServer.sh start-foreground 启动报错
- Android面试——OOM及ANR
- Spring之AOP声明式事务管理(采用xml的配置方式更好)
- PlayFramework第一个工程
- HDU 5057 分块
- 微信第三方小程序授权开发之旅
- JVM内存
- MorGain2017(结构快速设计软件)免费版下载及安装教程
- 3DES加密
- 容器(Collection)的介绍