扩展Android Systrace工具

时间:2012-11-22 08:49:03

标签: android trace systrace

我们正致力于扩展systrace工具,为我们的设备添加自定义信息。我们特别感兴趣的是知道android如何支持TRACE生成。跟踪事件,zigote,finders,jvm启动,android启动,linux调用,硬件调用等涉及的体系结构和机制是什么。

有人可以帮助我们提供有关此信息的链接或手册吗?

我们将特别感谢adb atrace工具和任何其他相关模块的技术文档。

跟踪文件格式的信息也是我们感兴趣的,我们在哪里可以找到这些跟踪文件,我们如何扩展它们以添加更多信息?

明细:

systrace.py 第81行,我们找到:

atrace_args = ['adb','shell','atrace',' - z']

我们知道这会在 / sys / kernel / debug / tracing /

中生成一些跟踪文件

我们的主要兴趣是知道这些文件的生成地点,时间和方式?

非常感谢!

3 个答案:

答案 0 :(得分:5)

我已经在systrace中做过研究,正如你所提到的那样使用了atrace。 Atrace内部使用ftrace。所以要了解有关ftrace的内核事件。 因此,了解Android框架标签,他们在Android框架中手动添加标签,他们认为这些标签对于跟踪是有用的。

您可以参考这些以获得更好的清晰度

http://androidxref.com/4.1.1/xref/system/extras/atrace/atrace.c

http://androidxref.com/4.1.1/xref/frameworks/native/libs/utils/Trace.cpp

答案 1 :(得分:1)

Grepcode是你的朋友。我认为一个很好的起点是调试类: http://www.grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.1.1_r1/android/os/Debug.java?av=f

有一个有趣的部分描述了调试属性列表:

1085            final String TAG = "DebugProperties";
1086            final String[] files = { "/system/debug.prop", "/debug.prop", "/data/debug.prop" };

必须使用特定注释声明每个属性:

android.os.Debug.DebugProperty

它似乎只适用于平板开发人员。

答案 2 :(得分:1)

我正在处理类似的任务并使用它。它帮助我浏览和理解Java / c ++ /内核级api及其实现方式。

http://www.srcmap.org/p/1/857623b50f7e/Android_Jellybean_systrace__atrace__ftrace_code_study.html