Android 调试之dmtracedump,方法调用分析
程序员文章站
2022-05-12 14:56:26
...
使用dmtracedump可以追溯方法的调用。生成函数调用关系图。
命令行输入dmtracedump,如果提示command not found。如下图,说明环境变量没有配置。
-
配置环境变量:
- dmtracedump执行文件存在Android sdk 的platform-tools文件夹下
- export PATH=$PATH:/Users/wuxinglin/Lib/Android/sdk/platform-tools
- 执行dmtracedump,打印信息如下,配置成功
-
生成图片输出
dmtracedump -g outfile trace-file-name
如:dmtracedump -g methodTrace.png dmtrace.trace
dmtracedump -g methodTrace.png dmtrace.trace
输入命令后等待执行结束,发现命令行输出错误信息sh: dot: command not found,并退出。发现并没有生成我们的图片文件(methodTrace.png)。
这是因为没有安装graphviz,graphviz是开源的图形绘制工具。dmtracedump工具使用Graphviz Dot程序创建图形输出
graphviz安装方法(Mac):brew install graphviz
安装完成后,再执行dmtracedump -g methodTrace.png dmtrace.trace 命令,发现已经生成methodTrace.png。
-
生成.trace文件
又是怎么生成我们命令中trace文件呢(dmtrace.trace)?
这就需要我们开发时,在需要追踪的方法运行之前加上Debug.startMethodTracing(),之后加上Debug.stopMethodTracing()。
在Debug.stopMethodTracing()方法被执行之后,在sdcard/Android/data/packagename/files文件夹下倒出dmtrace.trace。
上一篇: 0基础学习python有什么好的建议?