【安卓开发】使用LeakCanary进行内存泄漏分析 Analysis in progress, 0% done, 解析堆转储一直卡住

使用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窗口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值