打开eclipse,切换到Memory Analysis模式。
file-》open file 导入文件
点击“搜索”,输入工具notify消息出来的对象值
开发工具的ActivityList文件里会显示例如:
com.taobao.tao.shop.ShopActivity@42641a80
这里输入Ox42641a80,能搜索出检测到的泄露对象。
Merge Shortest Paths to GC Roots()
当前运行的线程对象,从一个对象到GC Roots的引用链被成为Paths to GC Roots,分析这个可以找出内存泄露的问题,当GC Roots到这个对象之间无任何路径,说明该对象是可以被回收的。
exclude all phantom/weak/soft etc..是排除虚拟引用,弱引用和软引用。
Shallow size就是对象本身占用内存的大小,不包含对其他对象的引用。Retained size是该对象自己的shallow size,加上从该对象能直接或间接访问到对象的shallow size之和。换句话说,retained size是该对象被GC之后所能回收到内存的总和。
去除依赖后,剩下的是强依赖。简单点从下往上看,最近劫持Activity对象的就是出问题的对象。