Android Studio + MAT 内存泄露分析

前提 ThirdActivity 已经关闭,回到了MainAcitivity。应该是只有回到了MainAcitivity的。
通过 Profiler 看到还有 ThirdActivity,那就是它有内存泄露。

1870221-dddc989e79bf2d92
image

1、首先利用 Profiler GC 打点,下载 hpof。当然也可以在Profiler中查看Activity是否有泄露,但是具体不到在哪里。

2、下载 MAT http://eclipse.org/mat/ 单独的一个工具
直接打开 hpof 是不行的,需要转换一下,如果 android sdk目录 sdk/platform-tools中没有 hprof-conv ,那么就下载一个放进去就好了。

hprof-conv D:\before.hprof D:\after.hprof

然后就用MAT 打开就好了。
1、SQL 筛选Activity 等目标

select * from instanceof android.app.Activity

2、找到根节点的引用 如果还有引用那么肯定是泄露了啊,应该没有这个 Acitity的,既然存在,那么就有GC root 的引用,导致不能内存回收。


1870221-ddb0e773806a5bda
image

对就是它。

1870221-65d85681985634e2
image

当然分析的东西和功能很多,还有两个 hpof 对比,找到区别点,进行定位。

1870221-7ba6e6046e40b5b6
image
1870221-29218e803f82ab4a
image
1870221-26c41d2078ef596b
image

完毕~~

本文属于粗糙笔记,可以详细看参考文章来学习这一块。

『参考文章』:

https://blog.csdn.net/junhuahouse/article/details/79731529

https://blog.csdn.net/itachi85/article/details/77075455

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值