1. 今天在对ndk的so进行profile的时候,我选择是ndk自带的gprof,按照网上的办法,做好了准备生成了gmont.out
简单翻译下使用方法:
将压缩包解压,然后在Android.mk中添加
LOCAL_SRC_FILES := $(your_path)/libandprof.a
在初始化时调用:
monstartup("your_lib.so");
退出时调用:
moncleanup();
修改AndroidManifest.xml,添加:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
执行退出函数后会保存在/sdcard/gmon.out,查看结果时使用:
adb pull /sdcard/gmon.out .
arm-linux-androideabi-gprof your_lib.so
我将其拷贝到lib下的so里面进行gprof,结果报no symbols,最好才知道原因,原来lib和obj下的so是有区别的,lib下的是去除了symbol
和调试信息的,要gprof必须到obj目录下。