android OOM问题经验
来源:互联网 发布:java reflection 实例 编辑:程序博客网 时间:2024/05/21 14:59
前段时间做了一个UI,用了大量的图片,使用了网上说几个方法,但是还是在个别情况出现oom。下面是一个解决方法。
使用的方法有:
1.不用的图片马上给释放
bmp.recycle()
2.使用数据流方式加载图片
BitmapFactory.decodeStream
3.使用LruCache缓存
4.加载图片的时候使用
options.inJustDecodeBounds = true; 先计算大小,然后
options.inSampleSize = 10;// 固定缩小10倍
随后使用的时候放大,(我的这个UI失真不会影响结果,是用于计算的)
使用的以上的方法,仍然会在极端的情况下出现oom;
用哲学的思想解释是,已经有解决方法,我是没注意到或者没找到。
后来经过测试发现问题在于,图片加载完成后使用recycle释放,此时VM并没有马上清理资源,所以在后面使用的时候就增加oom的风险,所以解决办法也比较简单
就是在释放后执行
bmp.recycle()
System.gc(); // 这是关键,提示系统回收垃圾
就这么简单的一行代码就解决了问题。
参考http://www.cnblogs.com/manuosex/p/3661762.html等文章
- android OOM问题经验
- Android OOM问题排查
- Android OOM 问题整理
- Android 图片 OOM问题总结
- Android OOM 问题的总结
- android 图片加载,OOM 问题
- Android--内存管理,OOM问题
- Android加载大图OOM问题
- android加载图片OOM问题
- Android-BitmapFactory.decodeResource OOM问题
- 【Android】Android OOM 问题的总结
- 记一次 OOM经验
- android out of memory oom问题
- 解决Android解析图片的OOM问题!!!
- 解决Android解析图片的OOM问题!!!
- 解决Android解析图片的OOM问题!!!
- 解决Android解析图片的OOM问题!!!
- android 解决bitmap造成的OOM问题
- 10-判断数据库中字段重复的数据
- C#中调用简单的R语言
- FMDB使用文档
- 一个tornado项目的大体结构
- hdu1695欧拉,容斥
- android OOM问题经验
- 我的记事本项目之路(五)
- js中的字符长度问题
- 杭电1799循环多少次?
- Spring JdbcTemplate 方法详解
- android学习教程总结 第九讲:芯灵思开发板init守护进程
- 第一章:Object-C简介
- Codevs_P1087 麦森数(快速幂+分治)
- Linux下crontab定时执行脚本