1.避免内存泄露
2.解除应用
3.Close();
特别注意Cursor
4.不要遗落注册的对象
比如说广播,不需要的时候一定要释放
5.循环应用
6.该关闭的资源对象没有关闭
7.Bitmap对象在不使用时,应该调用recycle释放内存,然后设置为Null,因为它没有
8.Context对象的应用会引起activity不会被GC回收
尽量使用getApplicationContext();
有一个插件,调试内存分析
http://download.eclipse.org/mat/1.4/update-site/
内存优化
1.回收不可见的界面
2.典型的用时间来换取空间
复用内存
ListView就是一个典型
我们在ListView界面往下滑动时,上面的不可见,下面的内存在显示,那么前面不可见的内容的内存并没有被释放,而是被下面将要显示内容占用上
我们在创建一次的时候,下次在使用,直接赋值上去
复用内存可以提高应用程序速度,也可以防止内存泄露
JAVA从JDK1.2开始,对象的引用分为四中级别
强引用
软引用
弱引用
虚引用
弱引用,GC可能随时回收它的内存
软引用,只要当内存不够用时,GC才会回收它的内存
在java.lang.ref包中提供的类
SoftReference类
WeakReference类
PhantomReference类
它们分辨代表软引用、弱引用、虚引用
个人认为,开发android中合理使用软引用和弱引用