【问题标题】:Error running systrace tool in ADB using a Jelly Bean 4.1 emulator on Windows 7在 Windows 7 上使用 Jelly Bean 4.1 模拟器在 ADB 中运行 systrace 工具时出错
【发布时间】:2012-07-03 06:52:30
【问题描述】:

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

我做了以下事情:

  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')

注意:

  • 我在模拟器中启用了跟踪:Settings &gt; Developer Options &gt; Enable traces
  • 我也尝试过使用 Python 3.2

【问题讨论】:

    标签: android windows-7 adb android-4.2-jelly-bean systrace


    【解决方案1】:

    systrace python 脚本使用 select() 系统调用,这在 Windows 上不起作用。 Android SDK 工具的latest preview (ADT21 rc9) 支持从监控工具中收集系统跟踪信息。

    启动监视器为:

    ./tools/monitor &
    

    点击一个设备,在设备面板的右上角,你应该有一个工具栏项,可以让你收集系统跟踪。

    【讨论】:

    • 您也可以直接从 Eclipse 中切换到 DDMS 视图。
    • @IgorGanapolsky 这意味着在 linux 中打开一个独立于当前 shell 的可执行文件。你可以在windows中省略它
    【解决方案2】:

    我也遇到了这个问题。似乎 systrace.py 尝试将 select.select() 与文件描述符一起使用,正如 here 所记录的,Windows 不支持该文件描述符。

    我最终从 Linux VM 运行该工具。

    【讨论】:

    • 您能否发布有关您使用的 Linux Vm 工具的详细说明? :) 我相信如果你这样做了,你会得到答案。
    【解决方案3】:

    如果您使用 eclipse 进行开发,那么您可以使用内置的 Systrace 实用程序以及概述的@http://developer.android.com/tools/help/systrace.html。这是我发现的最简单的收集痕迹的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-22
      • 2013-03-11
      • 1970-01-01
      • 2011-05-09
      • 2016-07-23
      • 1970-01-01
      相关资源
      最近更新 更多