Android Studio + MAT 内存泄露分析

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

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 的引用,导致不能内存回收。


image

对就是它。

image

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

image
image
image

完毕~~

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

『参考文章』:

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

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

你可能感兴趣的:(Android Studio + MAT 内存泄露分析)