【发布时间】:2013-03-30 12:10:31
【问题描述】:
Systrace Android 工具在内部调用一个名为 atrace 的工具,它是 ftrace 或 strace 的扩展(Linux工具)。
如果我们通过模拟器控制台(ADB shell)连接到 Android Jelly Bean,我们可以执行 strace 工具,但我们不能执行 ftrace工具(未安装命令)。
通过 Internet 进行一些研究,我发现 strace 是 ftrace 的前身: http://crtags.blogspot.de/2012/04/dtrace-ftrace-ltrace-strace-so-many-to.html
查看 Android 源代码,我发现最“内部”的参考是 Trace.h 文件: http://androidxref.com/4.1.1/xref/frameworks/native/include/utils/Trace.h
我认为这个文件会被解析为原生 Linux 驱动程序。
但是,我仍然无法知道此实现驱动程序属于 strace 还是 ftrace。 “通常”,它应该是 ftrace 因为它是较新的,但在这种情况下,我不知道为什么我们不能从模拟器运行 ftrace。相比之下,strace 完全可以从模拟器中获得。
那么,有人知道Systrace Android 工具是在非常低的级别使用strace 还是ftrace?
谢谢!
【问题讨论】:
标签: android linux trace systrace