¿Cómo obtener el seguimiento de los métodos llamados por la aplicación de Android en el inicio de la actividad principal, sin que el código fuente de la aplicación esté disponible?
Necesito obtener el rastro de los métodos del OS llamados por la aplicación de Androide desde el momento en que su actividad principal se lanza. Puedo comenzar el profiler después de que el proceso haya comenzado ya, pero obviamente no rastreará los métodos llamados en el startup.
Aquí es cómo obtengo el rastro después de que el proceso ha comenzado:
- NVidia PerfHUD ES Tegra en Google Nexus 7
- Métodos del perfil sólo en el hilo principal de Android
- Cómo obtener la imagen de perfil de Facebook en Android
- ¿Cómo recuperar imágenes de perfil de Whatsapp?
- Nombrar AsyncTask para crear perfiles en Android
adb install com.example.app.apk adb shell rm ./mnt/sdcard/log.trace adb shell am start com.example.App/com.example.App.MainActivity adb shell am profile start com.example.App ./mnt/sdcard/log.trace <do stuff with the app, click on the GUI etc.> adb shell am profile stop adb pull ./mnt/sdcard/log.trace
Parece que hay una opción de gestor de actividad de --start-profiler
, pero no funciona. Intenté usarlo de la siguiente manera:
adb shell am start com.example.App/com.example.App.MainActivity --start-profiler ./mnt/sdcard/log.trace
Sin embargo, no se crea ningún archivo de seguimiento y la aplicación no se ralentiza en absoluto. Cuando el perfil se activa, se ejecuta mucho más lentamente.
He probado esto en Android API 17, emulador Intel x86, Windows 7 x64 en Mac Book Pro (a través de Bootcamp).
- Software Android NDK código nativo c perfil en los teléfonos Android real
- Android Power Profiler
- OProfile en android
- Android Eclipse: Traceview, simplemente no lo entiendo
- Temporizador de alta precisión en Android JNI
- Herramientas de análisis de memoria / rendimiento para Android
- Android - obtener foto de perfil de Facebook
- No se puede descargar el archivo de seguimiento
Estoy utilizando el comando siguiente y está trabajando perfectamente bien.
adb shell am start -n com.example.App/com.example.App.MainActivity --start-profiler ./mnt/sdcard/log.trace
El problema posible en su código en mi opinión podría ser, usted no está cerrando la aplicación si ya se ha iniciado. Por lo tanto, cuando se emite el comando que se especificó que no se inicia la aplicación en un modo de perfil en su lugar sólo trae su instancia ya iniciado en el frente que está sin un soporte de perfiles. Si desea iniciar la aplicación con perfiles habilitados en ella, asegúrese de que la aplicación esté cerrada (no en un fondo o minimizada) antes de iniciarla con Profiler.