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 编码的字符串的指定范围的内容 |