花了一早上时间写了个jni Demo,途中遇到一些问题,在这里总结一下,至于如何配置NDK环境,这里就不再重复了,网上例子太多了(NDK环境配置)。
先看工程目录,这是最后生成so文件以后的目录:
问题一:根据java native 接口 生成 c 头文件
我是windows系统,在cmd命令行 进入工程主目录 用 javah 命令生成 头文件
至于javah命令的详细解释,请参考:http://blog.csdn.net/niu05500230/article/details/8277190
说明一下:
1、要先将java代码编译为 class文件,然后用生成的class文件(路径在主工程bin/classes目录下,在命令行中注意斜杠)生成c头文件
2、-d jni 是将生成的头文件输出在 jni目录(自动创建)下
3、头文件的相关信息可参考:http://www.cnblogs.com/saintaxl/archive/2012/01/01/2309443.html
4、头文件生成之后就可以写C或C++程序了
5、最后在jni目录下编写mk文件,可参考:http://blog.csdn.net/niu05500230/article/details/8277204
问题二:用NDK编译c/c++程序
打开Cygwin Terminal终端,用cd命令进入主工程jni 目录
用ndk-build命令编译mk文件
注意路劲问题,也可以将ndk路径加入环境变量,否则会报错
下边是编译结果:
然后在java代码里 加载生成的库文件了:
static { System.loadLibrary("jniTest"); }
之后就可以调用之前定义的native接口了
Android Jni 运用问题总结
最新推荐文章于 2021-12-12 13:50:46 发布