6

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

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

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

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

细节 :

systrace.py第 81 行中,我们发现:

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

我们知道这会在/sys/kernel/debug/tracing/中生成一些跟踪文件

我们的主要兴趣是了解这些文件是在何处、何时以及如何生成的?

非常感谢你 !

4

3 回答 3

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

于 2012-11-28T06:32:53.723 回答
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

不过,它似乎仅适用于平台开发人员。

于 2012-11-22T09:43:02.067 回答
1

我正在从事类似的任务并使用它。它帮助我浏览和理解 Java/c++/内核级别的 api 以及它是如何实现的。

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

于 2014-09-24T16:43:57.420 回答