1、Android Studio
通过命令行
打开AndroidStudio,选中Terminal选项卡,运行项目到真机上,进入主界面操作各个界面,然后重新进入主界面,这个时候项目中应该只有一个MainActivity的实例,此时在Terminal中输入
adb shell dumpsys meminfo 进程名 -d ,就有目前栈中所有的Activity的实例,如果数量大于1,说明有内存泄漏的界面。
通过Monitors
打开AndroidStudio,选中Monitors选项卡,这个时候选中Memory,会有一个可视化的视图。
操作App一遍,然后回退到MainActivity,先点击购物车(手动触发GC),再点击一下打点(生成horof文件),稍等片刻,会在AndroidStudio生成一个窗口。
点击分析内存的Task,会出现一个分析视图,然后点击运行,查看是否内存泄漏的Activity。
通过结果分析我们发现,WebViewActivity有内存泄漏,泄漏点是其中的WebView持有界面的Context。