AndroidStudio的JNI编程举例

问题:什么是JNI,怎么使用?

JNI---Java Native Interface,它是Java平台的一个特性(并不是Android系统特有的)。主要是定义一些JNI函数,让开发者可以通过调用这些函数实现Java代码调用c/c++的代码,c/c++代码也可以调用Java的代码。这样就可以发挥各个语言的特点了。那么怎么使用JNI呢?一般情况下我们首先是将写好的c/c++代码编译成对应平台的动态库(windows一般是dll文件,linux一般是so文件等等),我们使用的是Android,这里只讨论so库。

1、新建一个类,声明native方法。这个类是java与c/c++交互的中介,方法由java声明,由c/c++实现。


2、打开AndroidStudio的Terminal终端控制台,使用javac编译上述文件,生成class文件。

命令:cd testjni/src/main/java/com/ying/testjni/                  先要切换到myJNI.java对应的目录

使用命令:javac myJNI.java稍等一会在相应的目录会生成对应的.class文件

3、确认自己类的包名,在最外层包的上级目录使用javah生成.h文件(注意使用javah的位置,否则会报找不到xxx的类)

例如:我的包名是com.ying.testjni,那么就要切换到com所在的目录即:cd java/   在这个目录使用命令javah -jni com.ying.testjni.myJNI。在对应的目录会生成相应的JNI头文件。

4、在main目录下新建jni文件夹,并新建main.c文件,把刚才生成的.h里面的内容复制进去,并实现里面的方法。



5、在AndroidStudio3.0推荐使用CMake编译c++文件(CMakeLists.txt文件可以从别处拷贝,然后修改相应的cpp文件名称以及相应的位置即可)。


6、最后需要在module下的build.gradle里面配置CMakeLists.txt的路径


7、最后在MainActivity中使用就可以了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值