Android SDK中使用Systrace工具生成的HTML跟踪报告无法查看。

31

我在使用Android SDK中的Systrace工具生成跟踪报告时,但无法在浏览器中查看。这个报告是空白的,没有包含任何信息。我在一些论坛上读到需要使用Chrome浏览器打开报告,我用Chrome打开了它,但报告仍然是空白的。

我已经在“开发者选项”中启用了USB调试功能,并且设备正在运行Android 4.2版本,我正在使用Android SDK中的DDMS工具来生成跟踪记录。

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


你试过Chrome浏览器吗?似乎只有它支持。 - sandrstar
文件有多大?我在打开大文件时遇到了一些问题。 - sandrstar
我已经生成了两个不同--set-tags的报告,其中一个是446 KB,另一个是2446KB。它们都是空白的。 - Zohaib Hassan
我的也是空白的。 - yhpark
这个回答对我有帮助:https://dev59.com/fJbfa4cB1Zd3GeqPuHcb#37475803 - Jim Andreas
显示剩余2条评论
12个回答

70

首先,如果任何人在使用OS X或Windows上的Chrome v50.0+,请尝试以下操作:

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

  2. 在跟踪页面中,点击“加载”并选择由systrace生成的html文件。

其次,我认为这是一个已被谷歌确认的bug。

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

有关更多信息,请参见https://code.google.com/p/android/issues/detail?id=57135


这是在Windows上为我工作的唯一解决方案! - prom85
@Zhipeng.C,感谢您提供的信息,非常有帮助。 - Mohamed Ibrahim
截至 51.0.2704.106 版本仍可正常运行。 - hypd09
谢谢!从“chrome://tracking”打开HTML解决了这个问题。 - Guy
你是个天才。 - Summer Sun
显示剩余4条评论

4

我在Linux上运行Chrome时也遇到了这个问题。

看起来他们在JavaScript实现中存在着绘制结果的bug。

请检查JavaScript控制台。 我的显示:

未捕获的类型错误:未定义的函数


https://developer.mozilla.org/zh-CN/docs/Web/API/Document/registerElement Chrome 和 Opera 是唯一支持该函数的浏览器,其他浏览器会出现错误。 - CrandellWS

3
在Windows系统上,我只需要按照以下步骤就可以看到结果:
  1. 获取trace.html文件。
  2. 使用Chrome浏览器打开trace.html并打开Chrome的开发者工具。然后会发现在trace.html中有3个错误,如下图所示: (图片)
  3. 进入错误代码行,注释掉错误函数。像这样:(图片)
  4. 保存修改过的html文件,刷新Chrome浏览器即可看到追踪结果。
这虽不是最佳解决方案,但无论如何我们都能看到结果。

1

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

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

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

0

我已经完成了以下内容:

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中,systrace报告可以正常工作


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

问题可能是由制造商定制的Android操作系统造成的,这个问题可能是由制造商引起的设备配置问题。

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

对于我来说,这些都没有起作用...但是因为https://dev59.com/HGQn5IYBdhLWcg3wr406#52379567 的答案

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

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

使用adb root并不起作用。

在另一台设备上,它完美无缺地工作,以及使用模拟器。


0

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

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

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

我们需要:

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

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


0

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

(Note: This is the translated text in Simplified Chinese.)

0

我解决了这个问题,只需要更新SDK,使用SDK管理器选择工具和平台工具进行更新即可。Python脚本在Windows上无法运行。

然而,即使生成了trace.html并且可以看到它,当数据溢出时,无法看到页面的底部部分。这是因为wasd导航不足以满足需求,需要使用滚动条。

要做到这一点,您需要:

  • 如果您在Linux上,请修改Python脚本并消除其中任何发现的overflow:hidden
  • 如果您正在使用SDK,请编辑trace.html并消除其中任何发现的overflow:hidden

希望这有所帮助,希望Google的某个人能够在源代码中修复这个问题。


0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接