2015-05-16 回答
jni对性能的提升没有我预想中的大,对于for循环的速度提升大概在1倍左右,所以如果数量级不大的话,性能提升不会很明显
jni编完之后,不能调试,是不是很蛋疼,不像android java可以看出错信息。jni crash之后,界面上表示为没有任何反应,过段时间直接退出应用,没有提示、也没有xxx已停止运行。第一次遇到真是无从下手,有没有!!!,经过对java层的log研究发现,原来jni crash后,cpu就直接死在那里(相当于assert,程序停止运行)。果断时间后java层发现程序已挂之后(进程僵死),就强制杀死该进程。于是程序直接退出而无提示。(以上分析纯属个人分析,如有不对,敬请指正)。这时发现如果能有单步调试功能那该多好!!
百度一下 ndk单步调式 一般能搜出如下结果:
1、安装cdt插件
2、安装sequoyah插件
3、使用插件装入jni文件、导入jni头文件
4、配置eclipse jni编译环境
5、修改ndk-gdb脚本
6、运行ndk-gdb脚本,并修改生成的文件(windows需安装cygwin)
7、配置eclipse native调试环境
吓尿了,有没有!!!单步调试这么麻烦!!!麻烦不说,windows下使用ndk-gdb效率还特别低
另外,对于修改google release的ndk脚本,我一直持保留态度,安说release的脚本应该直接能用的,为什么要做修改后才能用