一、JNI开发流程
1、在java中声明native方法(编写java程序)
2、通过javac编译java源文件得到class文件
3、通过javah命令针对class文件生成JNI头文件
4、实现JNI方法(编写相应的c/c++文件)
5、采用gcc等编译工具编译c/c++文件生成so库
6、将so库放到相应位置,System.loadLibary("so库")加载so库,ava程序就可以使用c/c++中 的native方法了
二、NDK开发流程
1、配置NDK环境,下载NDK,并配置到环境变量中,AS的话直接下载使用就行了
2、在java中声明native方法,编写java程序(跟JNI中的一样的)
3、在jni文件夹中分别实现JNI方法(一般是JNI头文件与c/c++文件写在一起)、Android.mk、Application.mk(jni文件夹可以与应用程序无关)
4、在jni文件夹的父目录执行ndk-build就可以生成libs文件夹(里面就是so库)
5、要用的就是so库,在应用程序app/src/main下建一个jniLibs并导入相应的so库,java程序就可以调用相应的c/c++方法了
以上是手动使用NDK的方法,如果要用AS来用的话,需要对App的build.gradle进行配置(配置jni模块名、jni文件夹位置、配置CPU平台等)
注意:JNI开发中比较关键的就是java与c/c++之间数据类型的转换
转载请注明原文地址: https://ju.6miu.com/read-1125154.html