Solo he encontrado una herramienta de generación de perfiles: http://code.google.com/p/android-ndk-profiler/. No pude hacerlo funcionar hasta el momento, entonces me pregunto si hay otras herramientas disponibles. Necesito hacer un perfil en un dispositivo físico, ya que mi aplicación ni siquiera funciona en el emulador.Android: ¿hay alguna herramienta para crear un código nativo?
Respuesta
No es fácil hacer que el generador de perfiles Android-NDK funcione. Debe seguir los pasos here a fondo.
Éstos son algunos consejos que me han llevado al éxito:
- Asegúrese de que su android.mk es correcta y que se exporta la NDK_MODULE_PATH.
utilizar correctamente las siguientes funciones
monstartup ("your_lib.so");
moncleanup();
Si el gmon.out se genera ahora, necesita extraerlo del dispositivo, pero no a ningún lado en su PC. Para mí sólo funciona si voy a la carpeta de la aplicación (donde JNI, obj, res y otras carpetas son) y lo hago:
consola $ ADB sdcard tirón/gmon.out
A continuación, ejecute gprof. Prueba todas las versiones en tus cadenas de herramientas NDK. Para mí sólo funcionaba uno, éste:
consola $ ~/Bibliotecas/android-NDK-R9/cadenas de herramientas/arm-linux-androideabi-4.8/prebuilt/Linux-x86_64/bin/arm-linux-androideabi -gprof obj/local/armeabi-v7a/libxxxx.so> profile.txt
La plataforma Shiny profiler es independiente de la plataforma, se ejecuta en cualquier lugar y no tiene ninguna dependencia además de un compilador C++ estándar. En su uso más simple, todo lo que necesita hacer es agregar una macro al comienzo de todas las funciones y métodos (o al menos aquellos que desea crear un perfil).
Amplificador Intel VTune. Este generador de perfiles le permite recopilar puntos de acceso con acumulaciones en dispositivos Android sin raíz o cualquier modificación del sistema operativo. Aquí está la guía simple: http://software.intel.com/en-us/articles/using-intel-vtune-amplifier-on-non-rooted-android-devices
Acerca de la hora en que comienzan a apuntar a Android. Pero, ¿admiten ARM o solo x86? –
Sí, funciona bien en ambos arcos. –
Hola Ilya! :) ¿Es realmente mejor que android-ndk-profiler? ¿Cuanto cuesta? –
en el R13b NDK hay una nueva herramienta llamada simpleperf
Simpleperf documentado en https://android.googlesource.com/platform/system/extras/+/master/simpleperf/README.md – osgx
- 1. ¿Hay alguna herramienta como mecanizar para Android?
- 2. Android: MediaRecorder @ Código nativo
- 3. ¿Hay alguna herramienta gratuita para crear animaciones SWF/Flash?
- 4. ¿Hay alguna herramienta como doxygen para XSLT?
- 5. ¿Hay alguna herramienta para reformatear el código de C#?
- 6. ¿Hay alguna herramienta para comentar el código de JavaScript?
- 7. refactorización del código vba: ¿hay alguna herramienta para ayudar?
- 8. ¿Hay alguna herramienta para ordenar automáticamente el código F #
- 9. ¿Hay alguna herramienta ORM para Haskell?
- 10. ¿Hay alguna herramienta para actualizar Javadoc automáticamente?
- 11. ¿Hay alguna buena herramienta para examinar Makefiles?
- 12. ¿Hay un compilador nativo de código de máquina para JavaScript?
- 13. ¿Hay alguna herramienta de visualización de código PHP?
- 14. ¿Hay alguna herramienta para generar un archivo WADL?
- 15. ¿Hay alguna herramienta XSL Lint?
- 16. ¿hay alguna herramienta para crear rutas SVG desde un archivo SVG?
- 17. ¿Hay alguna herramienta similar a Visual Studio para crear GUI para Python?
- 18. ¿Hay alguna herramienta de línea de comando de código abierto para refactorizar el código de Java?
- 19. ¿Hay alguna herramienta que pueda incorporar CSS?
- 20. ¿Hay alguna herramienta de DRYer por ahí?
- 21. ¿Hay alguna manera de ver el código nativo producido por theJITter para C#/CIL dado?
- 22. depuración de código nativo en Android Biblioteca
- 23. ¿Hay alguna herramienta para diagrama de flujo disponible?
- 24. ¿Hay alguna herramienta que detecte GUID duplicados?
- 25. ¿Hay alguna herramienta para generar DTO de las entidades?
- 26. cómo depurar código nativo puro en android?
- 27. ¿Hay alguna herramienta para ayudar con la compleja lógica 'si'?
- 28. Cómo depurar código nativo de Android en un dispositivo real
- 29. ¿Hay alguna herramienta para convertir Managed C++ a C++/CLI?
- 30. ¿Alguna buena herramienta de traducción comunitaria para Android?
modificando cada función en el proyecto es dolorosa. Prefiero la instrumentación automática. ¡Pero gracias por el consejo! –
Si nada funciona, te garantizo que Shiny lo hará. Tuve un problema similar con webOS. El soporte de gprof se rompió, y no había nada más disponible. Shiny lo hizo realmente bien y me ayudó a resolver mis problemas de rendimiento. Para el esfuerzo de instrumentar el código, simplemente escribí un script que localizaba todos los cuerpos de la función usando una expresión regular, luego inserté la macro llamada automáticamente, para que no fuera nada doloroso. Buena suerte con tu búsqueda. – Miguel
¡Tiene sentido! Me refiero a la inserción automática de macros. ¡Gracias! –