android:MAT内存分析工具的使用

前言

之前看过这篇博客,《IBM使用 Eclipse Memory Analyzer 进行堆转储文件分析》。所以,想使用MAT对android app的内存进行分析。又恰好看到这篇博客《Android内存泄漏研究》,于是,我也总结一些MAT的使用。

1.在Eclipse上安装MAT,和安装其他插件一样,MAT的当前地址:http://download.eclipse.org/mat/1.4/update-site/ 安装


完成之后重启Eclipse即可。


2.在设备页面,选择包名对应的app,如图1.点击图标,等待一会,就会出现图2的分析结果。



图1




图2


根据分析的结果,我们可以看出app的内存占用情况。点击左下角action标签页的Histogram,就可以通过直方图的形式


查看各种对象的数目,以及占用的内存大小。




图 3


图3所示的对象,最多可以显示31个,但是我们可以根据包名和类名对其进行过滤。最最重要的时,我们可以右键查看


对象被哪些对象所引用,这样,我们就可以分析对象没有被GC的原因,然后检查对应的代码。





图 4




图 5


可以看出,该Activity被引用的路径。可以看出,该Activity虽然已经finish了,但是GifView仍然保存了它的引用,导致无法GC。


同样的,我们可以先从暂用内存最多的对象分析,然后查看它们的引用树。注意:并不是所有暂用内存多的对象,都会


造成内存泄露。比如一副比较大的图片,当它需要显示的时候,很显然,它对应的byte数组应当出现在内存中。




-------------------------------------------------------------------

更多交流,Android开发联盟QQ群:272209595





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值