我只发现了一个分析工具 - http://code.google.com/p/android-ndk-profiler/。到目前为止无法使其工作,所以我想知道是否还有其他工具可用。 我需要在物理设备上进行配置,因为我的应用程序甚至无法在模拟器上运行。
答案 0 :(得分:8)
Shiny profiler与平台无关,它可以在任何地方运行,除了标准的C ++编译器之外它没有任何依赖关系。在更简单的用法中,您需要做的就是在所有函数和方法的开头添加一个宏(或者至少在您想要分析的那些函数和方法中)。
答案 1 :(得分:7)
使Android-NDK探查器工作并不容易。您需要彻底遵循here步骤。
以下是一些让我获得成功的提示:
正确使用以下功能
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
的新工具