Error al ejecutar la herramienta systrace en ADB usando un emulador Jelly Bean 4.1 en Windows 7

¿Cómo puedo ejecutar systrace para mostrar su salida html? Después de ver la presentación de Google I / O 2012 “For Butter or Worse”, tengo problemas para que systrace funcione en Windows 7 con el emulador que ejecuta Jelly Bean 4.1.

Hice lo siguiente:

  1. Instalé Python 2.7 y agregué la carpeta de instalación a mi PATH
  2. Se ejecutó lo siguiente: C:\android-sdk\platform-tools\systrace>python systrace.py (con SDK anteriores: C:\android-sdk\tools\systrace>python systrace.py )

Pero obtengo el siguiente error en cmd:

 Traceback (most recent call last): File "systrace.py", line 212, in  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') 

Nota:

  • He habilitado los rastros en el emulador: Settings > Developer Options > Enable traces
  • También lo he intentado con Python 3.2

La secuencia de comandos python systrace utiliza la llamada al sistema select (), y eso no funciona en Windows. La última vista previa (ADT21 rc9) de las herramientas de Android SDK incluye soporte para recostackr el rastreo del sistema desde la herramienta del monitor.

Inicie el monitor como:

 ./tools/monitor & 

Haga clic en un dispositivo, y en la esquina superior derecha del panel del dispositivo, debe tener una barra de herramientas elemento que le permita recostackr el rastreo del sistema.

También me encontré con este problema. Parece que systrace.py intenta utilizar select.select () con los descriptores de archivos que, como se documenta aquí , no son compatibles con Windows.

Terminé ejecutando la herramienta desde una máquina virtual Linux.

Si está utilizando eclipse para su desarrollo, entonces puede usar la utilidad integrada Systrace, así como también se describe @ http://developer.android.com/tools/help/systrace.html . Es la forma más fácil que encontré para recolectar rastros.