在Windows 7上使用Jelly Bean 4.1模拟器运行ADB时,运行systrace工具时出错。

16
我如何运行systrace以显示其html输出?在观看了Google I/O 2012讲座“For Butter or Worse”之后,我在使用模拟器运行Jelly Bean 4.1的Windows 7上无法让systrace正常工作。

我已经完成以下步骤:

  1. 安装了Python 2.7,并将其安装文件夹添加到了我的PATH中
  2. 运行了以下命令:C:\android-sdk\platform-tools\systrace>python systrace.py(对于旧版SDK:C:\android-sdk\tools\systrace>python systrace.py

但是在cmd中,我得到了以下错误:

Traceback (most recent call last):
  File "systrace.py", line 212, in <module>
    main()
  File "systrace.py", line 124, in main
    ready = select.select([adb.stdout, adb.stderr], [], [adb.stdout, adb.stderr])
select.error: (10093, 'Either the application has not called WSAStartup, or WSAStartup failed')

注意:
  • 我已在模拟器中启用了跟踪功能:设置 > 开发者选项 > 启用跟踪
  • 我还尝试过使用Python 3.2
3个回答

18

systrace python脚本使用select()系统调用,但这在Windows上无法工作。Android SDK工具的最新预览版(ADT21 rc9)包括从监视器工具中收集系统跟踪的支持。

以以下方式启动监视器:

./tools/monitor &

点击设备,在设备面板的右上角应该有一个工具栏项,它允许您收集系统跟踪。


您还可以直接从Eclipse中切换到DDMS视图。 - arsalank2
1
@IgorGanapolsky 这意味着在Linux中独立于当前shell打开可执行文件。在Windows中可以省略这一步。 - rekire

3
我也遇到了这个问题。似乎 systrace.py 尝试使用 select.select() 与文件描述符一起使用,而正如 此处所述,在Windows上不支持此操作。
我最终在Linux虚拟机中运行了该工具。

你能否发布一份详细的说明,说明你使用了哪个Linux虚拟机工具? :) 我相信如果你这样做了,你会得到答案的。 - Andi Jay

0

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