Android:有没有用于分析本机代码的工具?

Vio*_*ffe 20 profiling android-ndk

我只找到了一个分析工具 - http://code.google.com/p/android-ndk-profiler/.到目前为止无法使其工作,所以我想知道是否还有其他工具可用.我需要在物理设备上进行配置,因为我的应用程序甚至无法在模拟器上运行.

Mig*_*uel 8

闪亮的分析器是独立于平台,它运行的任何地方,它没有除了一个标准的C++编译器的依赖.在更简单的用法中,您需要做的就是在所有函数和方法的开头添加一个宏(或者至少在您想要分析的那些函数和方法中).

  • 如果没有其他工作,我保证你有光泽的意志.我在webOS上遇到了类似的问题.gprof支持被破坏了,没有别的东西可用.Shiny做得很好,帮助我解决了我的性能问题.为了修改代码的工作,我刚刚编写了一个脚本,它使用正则表达式定位所有函数体,然后自动插入宏调用,所以它根本不痛苦.祝你的搜索顺利. (3认同)
  • 修改项目中的每个功能都很痛苦.我更喜欢自动仪表.但感谢小费! (2认同)

Jav*_*ock 7

使Android-NDK探查器工作并不容易.您需要彻底遵循此处的步骤.

以下是一些让我获得成功的技巧:

  • 确保你的android.mk是正确的,并导出NDK_MODULE_PATH.
  • 正确使用以下功能

    monstartup( "your_lib.so");

    moncleanup();

  • 如果现在生成了gmon.out,则需要将其从设备中拉出,而不是从PC中的任何位置拔出.对我来说,它只有在我去应用程序的文件夹(jni,obj,res和其他文件夹)时才有效,我这样做:

    console $ adb pull sdcard/gmon.out

  • 然后运行gprof.尝试NDK工具链中的所有版本.对我来说,只有一个人工作,这一个:

    console $〜/ Libraries/android-ndk-r9/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gprof obj/local/armeabi-v7a/libxxxx.so> profile .文本