在应用程序代码android中使用systrace

时间:2015-05-10 08:38:02

标签: android trace systrace

android中的文档说

you can use the methods of the Trace class to add instrumentation to 
your application code and see the results in a Systrace report.

我已将以下方法添加到我的代码中

Trace.beginSection("test-trace");  

// block of code

Trace.endSection();

现在我在哪里可以查看本节的结果。我从android设备监视器启动systrace工具并将其记录30秒(执行按钮单击执行上面的块)。它会生成trace.html文件,但如何从此html文件中获取上述部分信息

4 个答案:

答案 0 :(得分:5)

就在那里,我自己搜索了大约一个小时:D

如果你只有一个线程,它会显示在UI线程行中,否则会显示在你定义的线程行中。

如果找不到,请使用页面右上角的搜索工具箱,在那里输入“test-trace”,它会详细显示该开始时间

:)

this screenshot may help you

答案 1 :(得分:2)

systrace输出仅包含命令行中列出的标记。对于特定于应用程序的跟踪,这意味着添加--app=package-name参数。这是必要的,因为systrace会记录整个系统,并且您不希望它自动为每个应用程序和组件选取跟踪。

您可以找到示例here。对于包名为com.faddensoft.multicoretest的程序,您可以使用如下命令行:

python systrace.py --app=com.faddensoft.multicoretest gfx view sched dalvik

这样,您的跟踪应该出现在发出跟踪调用的线程的行中。 (在Web浏览器中打开HTML文件;可能需要使用Chrome。)

答案 2 :(得分:0)

可能您录制的时间太长,请确保使用-b命令增加缓冲区大小,或者仅遵循以下示例:

python systrace.py  -app=package_name sched freq idle am wm gfx view dalvik input binder_driver -t 30 -o test.html -b 30384

答案 3 :(得分:0)

如果您使用android 9 / Pie,则可以更轻松地使用类似Systrace的工具。在这里阅读:https://developer.android.com/studio/profile/systrace/on-device