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?
谢谢!