native层C++代码封装jni接口demo
时间: 2023-10-03 16:03:10 浏览: 126
JNI demo C++
好的,下面是一个简单的示例:
C++代码:
```c++
#include <jni.h>
extern "C" {
JNIEXPORT jint JNICALL
Java_com_example_NativeUtils_add(JNIEnv *env, jobject thiz, jint a, jint b) {
return a + b;
}
}
```
其中,`Java_com_example_NativeUtils_add` 是 JNI 接口函数,`add` 是 Java 层调用的方法名,`com_example_NativeUtils` 是 Java 类的全限定名。
Java代码:
```java
public class NativeUtils {
static {
System.loadLibrary("native-lib");
}
public static native int add(int a, int b);
}
```
其中,`loadLibrary` 方法用于加载本地库,`add` 方法对应本地方法。
需要注意的是,在运行之前需要将 C++ 代码编译成动态链接库,可以使用以下命令:
```shell
gcc -shared -fpic -o libnative-lib.so native-lib.cpp
```
其中,`-shared` 选项表示编译成动态链接库,`-fpic` 表示编译为位置独立代码,`-o` 指定输出文件名。
阅读全文