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

问题描述 投票:0回答:3

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文件中获取上述部分信息

android trace systrace
3个回答
6
投票

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

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

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

此屏幕截图可能对您有帮助:


3
投票

systrace 输出仅包含命令行上列出的标签。对于特定于应用程序的跟踪,这意味着添加

--app=package-name
参数。这是必要的,因为 systrace 会记录整个系统,并且您不希望它自动获取每个应用程序和组件的跟踪。

您可以在此处找到示例。对于包名称为

com.faddensoft.multicoretest
的程序,您可以使用如下命令行:

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

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


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
© www.soinside.com 2019 - 2024. All rights reserved.