android内存优化的几个方面
2016-04-29 11:15
423 查看
1、引用没释放造成的内存泄漏
1.1 注册没取消造成的内存泄漏1.2 集合中对象没清理造成的内存泄漏
2、资源对象没关闭造成的内存泄漏
资源性对象比如Cursor,File文件等往往都用了一些缓冲,我们在不使用的时候,应该及时关闭它们,以便它们的缓冲及时回收内存。3、一些不良代码造成的内存压力
3.1 Bitmap没调用recyle()Bitmap对象在不使用时,我们应该先调用recycle()释放内存,然后才它设置为null.虽然recycle()从源码上看,调用它应该能立即释放Bitmap的主要内存,但是测试结果显示它并没能立即释放内存。但是我它应该还是能大大的加速Bitmap的主要内存的释放。
3.2,构造Adapter时,没有使用缓存的 convertView,没有使用ViewHolder来缓存控件。
概述:
在android的开发中,要时刻主要内存的分配和垃圾回收,因为系统为每一个dalvik虚拟机分配的内存是有限的,在google的G1中,分配的最大堆大小只有16M,后来的机器一般都为24M,实在是少的可怜。这样就需要我们在开发过程中要时刻注意。不要因为自己的代码问题而造成OOM错误。
JAVA的内存管理:
大家都知道,android应用层是由java开发的,android的davlik虚拟机与jvm也类似,只不过它是基于寄存器的。
相关文章推荐
- android 子线程刷新view
- Android 自定义 RatingBar (评分控件)
- Android适配不同屏幕
- Android蓝牙通信开发总结
- android存储空间的分类
- Android之Socket群组聊天
- 自定义view之柱状图
- android学习笔记—AIDL的使用步骤
- Android-实时将下载图片加入相册中
- Android之Sensor 简介
- Android自定义View之圆形ImageView--RoundImageView
- Android Fragment的三种应用方式
- hjr-Android:关于Log
- Android四大布局之表格布局行列位置控制
- Android中service
- android:padding和android:margin的区别
- Android 常用抓包工具介绍之Charles
- android基础学习之popupwindow
- Android TextView边框和背景,以及圆形背景
- Android 常用抓包工具介绍之Charles