使用LeakCanary进行内存泄漏分析时,在LogCat筛选LeakCanary打印信息;
2025-06-25 17:32:36.291 13789-13837 LeakCanary hprof: heap dump "/storage/emulated/0/Download/leakcanary-com.example.anr/2025-06-25_09-32-33_909.hprof" starting...
2025-06-25 17:32:36.291 13789-13837 LeakCanary com.example.anr D Analysis in progress, 0% done, working on Parsing heap dump
一直卡在0%,查了一下先在Activity的onDestroy中手动GC
System.gc();
System.runFinalization();
但是貌似还是没有用,然后打开终端adb查看下载下的hpro文件,查看我之前几次操作的文件,文件大小时44M,也不大。
adb shell ls -lh /storage/emulated/0/Download/leakcanary-com.example.anr/
-rw-rw---- 1 u0_a207 media_rw 44M 2025-06-25 09:32 2025-06-25_09-32-33_909.hprof
-rw-rw---- 1 u0_a207 media_rw 44M 2025-06-25 10:09 2025-06-25_10-09-07_132.hprof
-rw-rw---- 1 u0_a207 media_rw 44M 2025-06-25 10:28 2025-06-25_10-28-15_836.hprof
再返回LogCat发现 诶!百分之30%了!不知道为什么。
然后又等待一会儿发现进度依旧不变,打开终端adb查看native和java堆信息
adb shell dumpsys meminfo com.example.anr
再返回LogCat发现 进度又变了!然后又等待一会儿发现进度好像又卡住了,再次打开终端查看native和java堆信息。
再返回LogCat发现解析完成了!猜测可能是得切换一下LogCat窗口。