Systrace Android工具内部调用一个名为atrace的工具,它是ftrace或strace(Linux工具)的扩展。
如果我们通过模拟器控制台(ADB shell)连接到Android Jelly Bean,则可以执行strace工具,但我们无法执行ftrace工具(命令未安装)。
通过互联网上的一些研究,我发现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?
谢谢!