android内存优化的几个方面

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)