溢出泄露

内存溢出 oom

1、Java heap space :
堆内存溢出
弱引用:垃圾回收时,无论内存是否充足,都会回收被弱引用关联的对象
软银用:内存不足才会回收
2、PermGen space:
永久代溢出。即方法区溢出,如常量池太大、字符串太大。
通过更改方法区的大小来解决,使用类似-XX:PermSize=64m -XX:MaxPermSize=256m的形式修改
3、stackoverflow 虚拟机栈溢出。死循环或者深度递归。虚拟机参数-Xss来设置栈的大小

内存泄露

1、资源io对象没关闭、cursor没关闭、bitmap没回收、
2、注册监听没取消、eventbus没取消注册
3、退出页面时,handler没有removeCallbacksAndMessages,仍然在线程执行消息
4、非静态内部类,持有外部强引用对象

工具:

leakcanary
mat
androidmonitor:dump java heap heap viewer

你可能感兴趣的:(溢出泄露)