Ошибка запуска инструмента systrace в ADB с использованием эмулятора Jelly Bean 4.1 в Windows 7

Как я могу запустить systrace, чтобы показать его вывод в формате html? После просмотра доклада Google I/O 2012 "На масло или похуже" У меня возникли проблемы с запуском systrace в Windows 7 с помощью эмулятора Jelly Bean 4.1.

Я сделал следующее:

  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 > Developer Options > Enable traces
  • Я также пробовал с Python 3.2

person Ryan R    schedule 02.07.2012    source источник


Ответы (3)


Скрипт systrace python использует системный вызов select(), который не работает в Windows. последняя предварительная версия (ADT21 rc9) инструментов Android SDK включает поддержку сбора трассировки системы из инструмент монитора.

Запустить монитор как:

./tools/monitor &

Нажмите на устройство, и в правом верхнем углу панели устройств у вас должен появиться элемент панели инструментов, позволяющий собирать системную трассировку.

person Siva Velusamy    schedule 24.10.2012
comment
Вы также можете напрямую переключиться на представление DDMS из Eclipse. - person arsalank2; 11.02.2013
comment
@IgorGanapolsky, что означает открыть исполняемый файл в Linux независимо от текущей оболочки. вы можете опустить это в окнах - person rekire; 20.09.2013

Я также столкнулся с этой проблемой. Похоже, что systrace.py пытается использовать select.select() с файловыми дескрипторами, которые, как задокументировано здесь не поддерживается в Windows.

В итоге я запустил инструмент с виртуальной машины Linux.

person Ian    schedule 08.07.2012
comment
Можете ли вы опубликовать подробные инструкции о том, какой инструмент Linux Vm вы использовали? :) Я уверен, что если вы это сделали, вы получите ответ на этот вопрос. - person Andi Jay; 17.07.2012

Если вы используете eclipse для разработки, вы можете использовать встроенную утилиту Systrace, а также описанную @ http://developer.android.com/tools/help/systrace.html . Это самый простой способ, который я нашел для сбора следов.

person Zoso    schedule 11.10.2014