adb开发工具合集(MAT+Hprof-conv)
2010-06-24 16:21 cppguy 阅读(5249) 评论(0) 编辑 收藏 举报
使用MAT分析OPhone程序
我们的示例代码已经完成了,大家可以按照上文的步骤自己一步一步来构造自己的音乐播放器,也可以使用附录的源代码包,将工程导入进Eclipse直接体验一下。最后和大家分享一下使用MAT分析OPhone程序的方法。
我们的示例代码已经完成了,大家可以按照上文的步骤自己一步一步来构造自己的音乐播放器,也可以使用附录的源代码包,将工程导入进Eclipse直接体验一下。最后和大家分享一下使用MAT分析OPhone程序的方法。
通常来说我们调试OPhone程序有两个最常见的方法,一,利用OPhone平台提供的android.util.Log通过log信息来分析 错误发生的原因。 二,通过设置断点,一步一步的跟踪程序发现问题。这两个方法非常有效,介绍相关方法的文章也很多,大家google一下就找到了。
还有一类常见的问题就是Memory Leak。对内存泄漏这类问题,以上两种方法不是很有效,在DDMS工具里面,我们也基本上只能查看到Heap的使用情况,对分析问题帮助不大。我们可以 利用Eclipse MAT (Memory Analyzer Tool)工具来分析此类问题。Eclipse Memory Analyzer是一个快速并且功能强大的Java heap分析器,能够帮助你查找内存泄漏和减少内存消耗。
如何安装使用MAT工具,请到http://www.eclipse.org/mat/学习,我们主要来介绍一下如何在OPhone上得到程序运行的heap dump信息。
- Adb shell 登陆到手机或模拟器
- Su – 切换到root权限
- Chmod 777 /data/misc, 使/data/misc目录具有读写权限
- 通过ps命令,找到要调试的程序的pid
- Kill -10 pid
- 在/data/misc 目录下,会生成文件名类似heap-dump-xxxxx-pidxxx.hprof的文件。
- 通过adb pull 命令将.hprof文件拽到pc端
- 使用OPhone SDK提供的hprof-conv工具将OPhone生成的hprof文件转换成MAT识别的标准格式。例如:
- Hprof-conv heap-dump-xxxxx-pidxxx.hprof standard-dump-file.hprof
9. 使用MAT工具打开 standard-dump-file.hprof, 你将看到类似下图的分析报告。
分析报告提供了详尽的heap信息,同时还指出了可疑的内存泄漏的对象。
大家可以根据MAT提供的详细Heap信息,查找漏洞了。