【问题标题】:Unable to view HTML trace report generated by Systrace tool in Android SDK无法在 Android SDK 中查看 Systrace 工具生成的 HTML 跟踪报告
【发布时间】:2013-05-14 16:36:39
【问题描述】:

我正在尝试使用 Android SDK 中的 Systrace 工具生成跟踪报告,但我无法在浏览器中查看报告。它是空白的,不包含任何信息。我在一些论坛上读到我需要在 Chrome 浏览器中打开报告,我也用 Chrome 打开它但报告是空白的。

我已从开发人员选项中启用 USB 调试,并且设备正在运行 Android 4.2,并且我正在使用 Android SDK 中的 DDMS 工具来生成跟踪。

http://developer.android.com/tools/help/systrace.html

【问题讨论】:

  • 你试过Chrome浏览器吗?似乎它只在其中可用。
  • 您好,sandrstar,我也在 Chrome 浏览器中打开了 trace.html 文件,但是它是空白的,并且报告中没有任何内容。
  • 文件有多大?我在打开大文件时遇到了一些问题。
  • 我生成了两个具有不同 --set-tags 的报告,其中一个是 446 KB,另一个是 2446 KB。它们都是空白的。
  • 嗨 Sandrstar,我在 Ubuntu 上安装了 Android SDK 并通过 systrace.py 脚本在那里生成了跟踪文件,我现在可以在 ubuntu 中查看 HTML 报告,但我不知道为什么报告是空白的在 Windows 上。

标签: android ddms systrace


【解决方案1】:

首先,如果有人在 OS X 或 Windows 上使用 Chrome v50.0+,请尝试一下。

  1. 打开 chrome 浏览器并转到“chrome://tracing”

  2. 在tracing页面,点击load,选择systrace生成的html文件。

其次,我认为这是 Google 确认的错误。

看起来这是因为现代版本的 Chrome 已弃用 Object.observe 函数[1][2]。

欲了解更多信息,请参阅https://code.google.com/p/android/issues/detail?id=57135

【讨论】:

  • 我的 Mac 版本是 50.0.2661.102(64 位)。它有效。
  • 这是唯一适用于 Windows 的解决方案!
  • @prom85 感谢您的信息。我会编辑我的答案,希望它能帮助更多人。
  • @Zhipeng.C 感谢您提供的信息,非常有帮助。
  • 不错的解决方法。但我希望 Systrace 工具在没有这种 hack 的情况下开箱即用。
【解决方案2】:

我在 linux 上运行 chrome 也有这个问题。

似乎他们在执行 javascript 绘制结果时存在错误。

检查 JavaScript 控制台。 我的说。

Uncaught TypeError: undefined is not a function

【讨论】:

【解决方案3】:

在 Windows 上,我可以通过这样做看到结果:

  1. 获取 trace.html
  2. 用chrome浏览器打开trace.html,打开chrome的开发者工具,发现trace.html有3个错误 showing like this
  3. 转到错误行,然后注释错误函数 like this
  4. 保存修改后的html然后刷新chrome,就可以看到trace结果了

这不是最好的解决方案,但我们可以通过任何方式看到结果。

【讨论】:

    【解决方案4】:

    我在 Ubuntu 12.04 上通过 eclipse 捕获时遇到了同样的问题。

    通过直接从 systrace 文件夹 (sdk/tools/systrace/) 运行该工具来解决此问题

    ./systrace.py -t 5 -o trace.html
    

    【讨论】:

      【解决方案5】:

      使用 SDK 管理器更新您的 SDK,选择要更新的工具和平台工具。 按照正常程序,就是这样。建议使用 Chrome 来查看结果。

      【讨论】:

        【解决方案6】:

        我通过更新SDK解决了这个问题,使用SDK管理器选择工具和平台工具进行更新,你就完成了。 Python 脚本在 Windows 上不起作用。 但是,即使生成了trace.html 并且可以看到,当数据溢出时,也无法看到页面的底部。这是因为 wasd 导航不足以使用所需的滚动条。

        为此,您需要:

        • 如果您在 Linux 中,请修改 Python 脚本并删除找到的 overflow:hidden
        • 如果您使用的是 SDK,请编辑 trace.html 并删除找到的 overflow:hidden

        希望对您有所帮助,如果 Google 中的某个人可以在源代码上解决此问题,那就太好了。

        【讨论】:

          【解决方案7】:

          我刚刚发现我的 trace.html 在 IE/Firefox/Chrome 中无法打开,但在最新的 Opera(在我的 Windows PC 上)中打开正常。

          【讨论】:

            【解决方案8】:

            对我来说,它不适用于 Firefox v34,但适用于 Chrome v37,而我使用的是 Ubuntu 12.04。

            【讨论】:

              【解决方案9】:

              尝试在 Firefox 37.0.1 上打开 Systrace 生成的 html 文件(大约 10 MB)时,我也遇到了类似的问题。但是,相同的文件在 Chromium 版本 37.0.2062.120 Ubuntu 12.04 (281580)(64 位)上运行良好。

              【讨论】:

                【解决方案10】:

                我已经完成了以下操作:

                cd $ANDROID_HOME/platform-tools
                
                git clone https://android.googlesource.com/platform/external/chromium-trace/
                
                mv systrace old-systrace
                
                ln -s chromium-trace/catapult/systrace/systrace/ systrace
                

                解决了我的系统跟踪问题

                systrace 报告至少在最新的 chrome 中工作

                【讨论】:

                  【解决方案11】:

                  您可以尝试我的示例 trace.html 文件来检查您的 Chrome 版本是否正常。 https://github.com/tngotran/systrace-android/blob/master/trace.html

                  这里还有一个链接到来自 Google https://source.android.com/devices/tech/debug/perf_traces.zip的官方 trace.html 示例

                  顺便说一下,根据我的经验,命令工具python systrace.py可以创建一个输出文件trace.html没有错误,但结果是一个空文件(即使文件大小大于5Mb或者更多)。

                  我们必须:

                  1. 从终端运行命令 adb root 以 root 身份重新启动 adbd
                  2. 再次运行python systrace.py

                  然后在 Chrome 中检查您创建的报告 .html 文件:)

                  【讨论】:

                    【解决方案12】:

                    建议:尝试跟踪一个模拟器(它们是用于开发的)


                    问题可能是针对 Android 操作系统的制造商定制,使问题可能是制造商造成的设备配置问题。

                    这里有几个答案可能会有所帮助。

                    这些都不适合我...但是因为答案https://stackoverflow.com/a/52379567/1815624

                    我发现它会通过使用链接的跟踪文件来加载数据:

                    这里还有一个链接到来自 Google 的官方 trace.html 示例 https://source.android.com/devices/tech/debug/perf_traces.zip

                    使用adb root 不起作用。

                    在不同的设备上,它可以完美运行,也可以使用模拟器。

                    【讨论】:

                      猜你喜欢
                      • 2016-07-08
                      • 2018-11-08
                      • 2013-03-19
                      • 1970-01-01
                      • 2021-03-15
                      • 2012-12-25
                      • 1970-01-01
                      • 1970-01-01
                      • 2017-04-27
                      相关资源
                      最近更新 更多