JNI 基础
数据类型
- 基本数据类型
| Java 类型 | Native 类型 | 符号属性 | 字长 |
|---|---|---|---|
| boolean | jboolean | 无符号 | 8位 |
| byte | jbyte | 无符号 | 8位 |
| char | jchar | 无符号 | 16位 |
| short | jshort | 有符号 | 16位 |
| int | jnit | 有符号 | 32位 |
| long | jlong | 有符号 | 64位 |
| float | jfloat | 有符号 | 32位 |
| double | jdouble | 有符号 | 64位 |
- 引用数据类型
| Java 引用类型 | Native 类型 | Java 引用类型 | Native 类型 |
|---|---|---|---|
| All objects | jobject | char[] | jcharArray |
| java.lang.Class | jclass | short[] | jshortArray |
| java.lang.String | jstring | int[] | jintArray |
| Object[] | jobjectArray | long[] | jlongArray |
| boolean[] | jbooleanArray | float[] | jfloatArray |
| byte[] | jbyteArray | double[] | jdoubleArray |
| java.lang.Throwable | jthrowable |
String 字符串函数操作
| JNI 函数 | 描述 |
|---|---|
| GetStringChars / ReleaseStringChars | 获得或释放一个指向 Unicode 编码的字符串的指针(指 C/C++ 字符串) |
| GetStringUTFChars / ReleaseStringUTFChars | 获得或释放一个指向 UTF-8 编码的字符串的指针(指 C/C++ 字符串) |
| GetStringLength | 返回 Unicode 编码的字符串的长度 |
| getStringUTFLength | 返回 UTF-8 编码的字符串的长度 |
| NewString | 将 Unicode 编码的 C/C++ 字符串转换为 Java 字符串 |
| NewStringUTF | 将 UTF-8 编码的 C/C++ 字符串转换为 Java 字符串 |
| GetStringCritical / ReleaseStringCritical | 获得或释放一个指向字符串内容的指针(指 Java 字符串) |
| GetStringRegion | 获取或者设置 Unicode 编码的字符串的指定范围的内容 |
| GetStringUTFRegion | 获取或者设置 UTF-8 编码的字符串的指定范围的内容 |
