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文件中获取上述部分信息
答案 0 :(得分:5)
就在那里,我自己搜索了大约一个小时:D
如果你只有一个线程,它会显示在UI线程行中,否则会显示在你定义的线程行中。
如果找不到,请使用页面右上角的搜索工具箱,在那里输入“test-trace”,它会详细显示该开始时间
:)
答案 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