Android调试工具 —— MAT [整理]

    博客分类:
  • Android
Android 调试 MAT

简介:
Eclipse提供的一个内存分析工具。它是一个功能丰富的 JAVA 堆转储文件分析工具,可以帮助你发现内存漏洞和减少内存消耗。
官网地址:http://www.eclipse.org/mat

安装(如果你使用的是MOTODEV Studio for Android则默认自带了该工具)
你可以选择安装Eclipse提供的原版插件或使用MOTODEV Studio for Android插件

>>1.原版插件
1).启动Eclipse,一次点击Help -> Intall New Software...;
2).点击输入栏右侧小箭头,选择"Galileo"(我的是3.5版,不同版本要找到和自己版本名称对应的);
3).等待列表更新完毕,找到并展开"General Purpose Tools";
4).选中并下载其中的"Memory Analyser (Incubation)"和"Memory Analyser (Charts)"两项。

>>2.MOTODEV Studio for Android插件
1).启动Eclipse,一次点击Help -> Intall New Software...;
2).通过Add新建一个更新(最新地址可在此获得):
Name:MOTODEV Studio for Android Plugin
Location:https://studio-android.motodevupdate.com/android/2.0
3).下载并安装此更新。
*如果主要针对Android开发,建议使用MOTODEV Studio for Android的整合插件,应为它还提供了很多便利的工具,不过如果已经安装了ADT的需要先手动卸载才能安装,具体请参考:作为插件安装 MOTODEV Studio。

使用方式1 —— 带参数运行
具体可参考:Eclipse Memory Analyser (MAT) - Tutorial
归纳的大致步骤:
(1)在Run Conigurations..中的Arguments设置VM argument为:
-XX:+HeapDumpOnOutOfMemoryError
(2)运行你的项目并生成.hprof文件,如果没看到请按F5刷新项目目录,就在根目录下;
(3)双击.hprof文件打开,选择"Leak Suspects Report"

使用方式2 —— 结合Sequoyah监控特定的设备及应用
<该方式需要你安装了Sequoyah或MOTODEV Studio for Android插件>

具体可参考:使用MAT分析应用内存

--------------------------------------------------------
*注意:
解析过大的HeapDump可能会导致Eclipse抛出OutOfMemory的错误:
Android调试工具 —— MAT [整理]_第1张图片

这时你需要手动调整Eclipse的缓存大小,可参考官网给出的处理方式(原文链接):
Android调试工具 —— MAT [整理]_第2张图片

>>我的使用情况:
我的机器只能设到512m,而且始终没法解决OutOfMemory的问题,看来对内存有一定要求呐...

但是我下载了RPC版的MAT却是能正常打开的,Eclipse插件版打不开的朋友可以试试该方式:RPC版MAT下载地址。
--------------------------------------------------------

打开后的界面如下:
Android调试工具 —— MAT [整理]_第3张图片


更详细的使用示例请参考以下文章:
http://wiki.eclipse.org/index.php/MemoryAnalyzer
—— 官方的帮助文档

使用 Eclipse Memory Analyzer 进行堆转储文件分析
—— 来自IBM的使用教程

Eclipse Memory Analyser (MAT) - Tutorial
—— 一个浅显易懂的MAT使用教程

使用Memory Analyzer tool(MAT)分析内存泄漏(一)
使用Memory Analyzer tool(MAT)分析内存泄漏(二)
—— 详细地分析了内存泄露的原因,并举例说明,强烈推荐

更多相关文章

  1. Android 底部菜单栏Tab功能的几种实现方式
  2. android中Activity与service之间相互通信的实现方式
  3. android下phonegap插件
  4. 两种方式实现Android侧滑菜单
  5. android中使用pull方式解析sdcard中的xml文件实例
  6. Android开发中的几种网络请求方式详解
  7. Android获得所有存储设备位置最佳方式
  8. Android的三种监听方式

随机推荐

  1. 笔记 Spinner类(下拉列表框):
  2. Jenkins长大了,Pipeline该用起来了!
  3. HTML5 蓝色 3D 钻石旋转动画
  4. Javascript 性能测试 [每日前端夜话0xB1]
  5. 漂亮实用!一款基于Bootstrap的jQuery开关
  6. 用 NodeJS 重命名系统文件[每日前端夜话0
  7. 什么?你项目还在用Date表示时间?!
  8. CSS3 全屏大气手风琴图片展示插件
  9. 嗯,用了一下Kotlin编程语言,真香!
  10. 纯CSS3骏马奔腾动画特效