内存优化
内存泄露和内存溢出
内存泄露就是对某一内存空间的使用完成后没有关闭。
出现的
主要原因:
某些长存对象持有一些应该被回收的对象,而导致垃圾回收器无法回收这些应该被回收的对象。
出现的场景:
- 数据库的cursor没有关闭
- bitmap对象使用完没有recycle
- adapter中没有复用contentview
- activity中对象的生命周期大于activity的生命周期
优化内存的方法:
- 减少不必要的全局变量尽量避免static成员变量引用资源耗费过高的实例比如Context。
- Cursor回收
- receiver回收
- stream/file回收
- 避免创建不必要的对象。(不要在自定义view的ondraw方法中大量创建对象)
- 避免内部getter/setter方法。