【问题标题】:Using systrace in application code android在应用程序代码 android 中使用 systrace
【发布时间】:2015-07-20 21:02:39
【问题描述】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我明白这一点,但这并不能回答我的问题可以更具体
    • 我不确定如何更具体。跟踪显示在进行跟踪调用的线程的行中。你没在那里看到吗?
    【解决方案2】:

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

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

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

    :)

    this screenshot may help you

    【讨论】:

      【解决方案3】:

      可能你录制的时间太长了,请确保使用 -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
      

      【讨论】:

        猜你喜欢
        • 2020-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-06
        • 2021-02-27
        • 2019-07-23
        • 2021-08-24
        • 1970-01-01
        相关资源
        最近更新 更多