排查内存泄漏的步骤
通过统计平台了解oom情况
重现问题
在发生内存泄漏时Dump内存
在内存分析工具中反复查看,找到原本该被回收掉的对象
计算此对象到GCroots的最短强引用路径
确认并修复问题
检测内存泄漏的工具
pc端java工具
mat工具(功能强大 界面友好,学习成本高 操作复杂)
YourKit工具(收费。。)
移动端
leakCanary工具(https://github.com/square/leakcanary)
使用简单
效果十分明显(出现泄漏就会弹出提示)
提供log
leakCanary配置
androidstudio
1.在build.gradle文件的dependencies中配置
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3'
2.在自定义的application中安装leakCanary
在onCreate中添加LeakCanary.install(this);(第一步执行完毕有需要重新build工程)