android 内存泄漏查找

前提:一般在日志中看到如下信息基本上就是内存泄漏了,然后需要知道是哪个应用

第一步:找到内存泄漏的机器连上电脑。

第二步:输入命令找到进程号:adb shell top -d 1 -m 10,我这里是lancher泄漏,找到进程号是1025
android 内存泄漏查找第三步: adb shell dumpsys meminfo xx.xx.launcher 查看这个应用下当前有多少个activity,可以确定这里有15个activity,不应该这么多,因为我们很多activity是单列的
android 内存泄漏查找第四步:打开sdk目录,C:\Users\Orion\AppData\Local\Android\Sdk,点击emulatorandroid 内存泄漏查找第五步:导出dump文件,找到lancher进程然后导出

https://blog.****.net/my_rabbit/article/details/79831911
android 内存泄漏查找

第六步:转换dump文件,第五步导出的文件在MemoryAnalyzer 是不能直接看的需要转化,输入如下命令:hprof-conv.exe 导出.hprof 111.hprof,这个111.hprof就是我们转换好的

android 内存泄漏查找第7步:打开MemoryAnalyzer ,然后file–>open

android 内存泄漏查找第8步:输入指令查找那15个activity
android 内存泄漏查找第9步:右键查找引用:android 内存泄漏查找第10步:这里就知道是某activity的fragment的$1变量持有了,$1可以在maping文件中找到
android 内存泄漏查找