Android Studio + MAT 内存泄露分析

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

一、首先利用 Profiler GC 打点,下载 hpof。固然也能够在Profiler中查看Activity是否有泄露,可是具体不到在哪里。bash

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

hprof-conv D:\before.hprof D:\after.hprof
复制代码

而后就用MAT 打开就行了。 一、SQL 筛选Activity 等目标eclipse

select * from instanceof android.app.Activity
复制代码

二、找到根节点的引用 若是还有引用那么确定是泄露了啊,应该没有这个 Acitity的,既然存在,那么就有GC root 的引用,致使不能内存回收。 工具

对就是它。学习

固然分析的东西和功能不少,还有两个 hpof 对比,找到区别点,进行定位。spa

完毕~~.net

本文属于粗糙笔记,能够详细看参考文章来学习这一块。3d

『参考文章』:code

blog.csdn.net/junhuahouse…

blog.csdn.net/itachi85/ar…