1. 安装Java,不赘述。
2. 编写Java接口代码,示例如下:
package com.xxx.jni;
public class JniTest {
static {
System.loadLibrary("test");
}
public native void test(int a, byte[] b);
}
主要内容:
1)package。模块所在的包
2)class JniTest。模块名
3)System.loadLibrary。需要加载的动态库名称,“test”表示库名为libtest.so。函数放在static语句块中,保证模块被加载时立即加载动态库。
4)public native void test。声明native函数。native函数使用C/C++实现,libtest.so需要包含它的实现。
保存文件名为JniTest.java。
3. 生成对应C/C++头文件
命令行执行:javac -h . JniTest.java,其中-h指定了存放头文件的目录,不可省略。
(jdk10之前使用命令javah -d . JniTest.java,之后javah被javac替代)
本命令会在当前目录生成头文件com_xxx_jni_JniTest.h和Java class文件JniTest.class。JniTest.class暂时不用管,头文件内容如下:
/* DO NOT EDIT THIS FILE - it is machi