2010-05-20 20 views
5

Recientemente comencé a trabajar en una aplicación que tiene componentes nativos Java y . Estoy intentando generar información de seguimiento para ambos componentes usando Debug.startMethodTracing("myapp") y Debug.startNativeTracing() alternativamente. Sin embargo, ambos se están comportando inesperadamente.¿Cómo utilizar las API de StartMethodTracing en Android?

Cuando uso Debug.startMethodTracing("myapp"), puedo ver que se está creando un archivo /sdcard/myapp.trace pero siempre está vacío, no importa cuánto tiempo ejecute mi aplicación. Cuando uso Debug.startNativeTracing() y comienzo el emulador con el interruptor -trace <tracename>, veo un mensaje que dice "Trace started", pero cuando intento ejecutar mi aplicación, el emulador se cuelga.

¿Me falta algo obvio aquí? ¿Cómo depuro este problema?

Respuesta

5

Cuando he tenido que pasarme eso, es porque he tenido pares de inicio/parada no coincidentes. Por ejemplo, si inicia el rastreo de métodos pero nunca se detiene, creo que Android simplemente nunca escribe la información de rastreo almacenado en un archivo. De manera similar, si tiene una parada adicional en el medio, o nunca comienza, etc., no obtendrá los resultados deseados.

Aparte de ese método, el rastreo me ha funcionado bien.

El rastreo nativo, por otro lado, parece no ser compatible (aún), ya que recibo un error "Todavía no se admiten archivos de rastreo Qemu" cuando intento cargar los resultados del rastreo nativo en traceview. (Cualquier comentario al respecto de Google?)

  • Kris
+0

Fundamentalmente, creo, es que si simplemente termine() su actividad antes de llamar a la parada, el trazado no se detendrá y no se le obtener un archivo completo. –

Cuestiones relacionadas