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

时间:2011-10-09 15:56:05

标签: android-ndk profiling

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

4 个答案:

答案 0 :(得分:8)

Shiny profiler与平台无关,它可以在任何地方运行,除了标准的C ++编译器之外它没有任何依赖关系。在更简单的用法中,您需要做的就是在所有函数和方法的开头添加一个宏(或者至少在您想要分析的那些函数和方法中)。

答案 1 :(得分:7)

使Android-NDK探查器工作并不容易。您需要彻底遵循here步骤。

以下是一些让我获得成功的提示:

  • 确保您的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.txt

答案 2 :(得分:2)

英特尔VTune放大器。此分析器允许您在没有root或任何操作系统修改的 Android 设备上收集带有堆栈的热点。 这是一个简单的指南: http://software.intel.com/en-us/articles/using-intel-vtune-amplifier-on-non-rooted-android-devices

答案 3 :(得分:1)

在NDK r13b中有一个名为simpleperf

的新工具