使用AndroidStudio dump heap,再用 Eclipse MAT插件分析内存泄露
1.eclipse mat插件的安装
Help->Install new software,如下图,一直下一步即可
2.eclipse 打开mat,并导入\导出的文件
file->open file 选择即可
3.Android studio export heap dump
进入Android Monitor视图
将光标定位到Android Studio的左下角,然后如下图所示弹出一个列表,选中“Android Monitor”
生成hprof文件
点击“Memory“Tab,进入内存分析的部分,然后点击”dump java heap for selected client”按钮,如下图所示:

然后主工作区就显示一个与下图类似的页面
导出hprof文件
再次将光标定位到Android Studio的右下角,这次选择”Captures“,在导出的hprof文件上右键单击并选择”Export to Stand .hprof“,就可以将导出的hprof文件进行分析了。
4.OQL查找Activity内存泄露
select * from instanceof android.app.Activity
再右键选择Path to GCRoots
gc
roots 显示android源码一个比较低级的bug导致的泄露,单例引用context。
leak
canary给出了解决文案