内存优化的一点总结
来源:互联网 发布:java的stringbuffer 编辑:程序博客网 时间:2024/05/22 04:31
那么,开发中,有哪些措施能避免这个问题呢?不仅仅是Bitmap的处理,其他方面也会导致OOM。有哪些好的内存优化方式呢?
以下有几个网友给出的7 个答案可以参考:
Billy Cui ,对Android总体开发和架构一知半解
除了Memory Leak,大数据量的操作也会导致OOM,比如之前其他回答提到的Bitmap,还有ListAdapter,如果在getView时处理不当,也很容易导致OOM,所以在ListAdapter时应该尽量使用convertView。
最后,可以用android.os.StrictMode以及Eclipse的MAT工具来进行OOM和Memory Leak的检测。
朱磊
除了Bitmap,其他的地方没想到什么能占用这么大内存,网络下载下来的数据文件?需要都留在内存中吗?目前我做的应用,每次请求的数据大小都比较小,每次Http请求下来的数据都把url转换成文件名,然后缓存成文件,在下次Http请求的时候先根据url来预读文件,暂时不用的数据就释放掉。
经常会OOM我觉得就是在Bitmap处理的时候,比如decodeFile,在往界面上加载图片时,不用直接加载原图,可以进行缩放。一张1000*1000的图片要加载到一个100*100的ImageView上,直接加载进来大多数都会OOM,可以先用inJustDecodeBounds
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
拿到这个图片的大小,再算好缩放比例
int
scale = (int)(options.outHeight / (float)size);
if (scale <= 0) {
scale
}
options.inSampleSize = scale;
options.inJustDecodeBounds = false;
再进行decode。
总之就是尽量时间换空间,实际这个时间是非常非常短的,用户体验内的。
刘彧 ,1个月android程序开发经验
邓桥 ,来自武汉,从事移动互联网相关开发工作,主…
刘沛 ,专业回答技术问题。
李昊 ,足球,电影,手机应用
网络上很多相关内容,但是没有统一的解决方案
最后都会说
1.recycle所有对象,排除程序对该对象的引用,然后System.gc(),但有时候不能根本的解决问题,因为android内部的对内存的限制机制导致的
2.bitmap是在我开发过程中,oom最多的地方,最后结论是,只能大幅度的缩小图片比例
黄杲 ,智能手机设计行业从业者
可以用MAT来检查内存泄露,或者用Monkey Test也能够帮助发现应用的内存泄露。
但内存使用的优化就看工程师的功力了。
- 内存优化的一点总结
- MYSQL 优化的一点总结
- 性能优化总结的一点回复
- 关于优化的一点小总结
- 关于性能优化的一点总结
- mysql设计,优化的一点总结
- 优化php性能的一点总结
- IOS内存管理的一点总结
- 关于内存管理的一点小总结
- 关于java内存的一点总结
- 关于c++内存的一点总结20150603
- 性能优化一点总结
- Cocos2dx的内存优化总结
- Android内存的优化总结
- 内存优化 和 性能优化 的总结
- Win 2000 中优化 Web 服务器性能的一点总结
- 对同学性能优化总结的一点回复
- 对同学性能优化总结的一点回复
- asp.net(c#)从Cache对象删除项
- 宏的用法
- 处理DIV元素嵌套情况下的事件响应
- hdu4300之KMP&&EKMP
- Java JDBC连接三种数据库
- 内存优化的一点总结
- 走迷宫
- delphi label固定宽度,超过长度就换行
- gfortran里面调用c语言的代码
-
- JSTL(JSP标准标签库)
- vector,map各种容器类型的使用方法总结
- 剖析 Linux hypervisor
- POJ 2949 SPFA