1、流程:(1)搭建环境
(2)编写jni的java接口
[1、Android输出内容和形式的编写res/values/string.xml;
2、编译主界面的布局res/layout/main.xml一般情况下,编写EditTex控件、Button控件;
3、编写scr 下的 libname.java 程序,加载动态链接库(名),链接native本地代码,用jni接口调用本地代码
4、编译生成.classs文件]
(3)编写jni(.c和.h实现)
[1、在classes目录下生成.h文件;2、新建jni文件夹,将.h文件拷贝到jni目录下,编写.c文件,将java接口写入。编译.c成功。]
(4)编译jni(编译.c,生成.so)
[1、编写Android.mk文件,编译生成.so]
(5) java层调用:libJNITest.so文件拷贝到模拟器的/system/lib目录下,执行以下命令:
http://blog.csdn.net/xnwyd/article/details/7086384# (有一些问题)
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/0415/1166.html (简单程序,可以成功运行)
Android NDK调试程序,问题解答:
1、但是一直编译不通过,提示上面的test()未定义,经过查找发现编译的时候有一个警告:
Android NDK: WARNING: Unsupported source file extensions in jni/Android.mk for module hello-jni
意思是不支持源文件扩展名。
可是我已经设置变量添加了cxx的扩展名的支持了,为什么还出现这种情况?
最后我把LOCAL_CPP_EXTENSION += .cxx从Android.mk中剪切到Application.mk文件中,清理项目,重新编译,编译通过!
2、unused static function 'SWIG_JavaThrowException'