NDK开发(二) :JNI的数据类型
2023-02-18 16:34:04 时间
转载请以链接形式标明出处: 本文出自:103style的博客
- NDK开发(一) :NDK入门指南
- NDK开发(二) :JNI的数据类型
- NDK开发(三) :JNI访问Java变量和方法
- NDK开发(四) :JNI操作Java数组
- NDK开发(五) :JNI实现文件加解密
- NDK开发(六) :JNI实现文件拆分和合并
目录
- 基本数据类型
- 引用数据类型
- JNI的数据类型描述符
- 示例
- 参考文章
基本数据类型
Java数据类型 | JNI本地类型 | C/C++数据类型 | 数据类型描述 |
---|---|---|---|
boolean | jboolean | unsigned char | C/C++无符号8位整数 |
byte | jbyte | signed char | C/C++有符号8位整数 |
char | jchar | unsigned short | C/C++无符号16位整数 |
short | jshort | signed short | C/C++有符号16位整数 |
int | jint | signed int | C/C++有符号32位整数 |
long | jlong | signed long | C/C++有符号64位整数 |
float | jfloat | float | C/C++32位浮点数 |
double | jdouble | double | C/C++64位浮点数 |
引用数据类型
Java的类类型 | JNI的引用类型 |
---|---|
java.lang.Object | jobject |
java.lang.String | jstring |
java.lang.Class | jclass |
Object[] | jobjectArray |
boolean[] | jbooleanArray |
byte[] | jbyteArray |
char[] | jcharArray |
short[] | jshortArray |
int[] | jintArray |
long[] | jlongArray |
float[] | jfloatArray |
double[] | jdobleArray |
java.lang.Throwable | jthrowable |
void | void |
JNI的数据类型描述符
Java类型 | 类型描述符 |
---|---|
int | I |
long | J |
byte | B |
short | S |
char | C |
float | F |
double | D |
boolean | Z |
void | V |
其他引用类型 | L+类全名+; |
数组 | [ |
方法 | (参数)返回值 |
示例
String 类
Java 类型:java.lang.String
JNI 描述符:Ljava/lang/String;
即一个 Java 类对应的描述符,就是 L 加上类的全名,其中 . 要换成 / ,最后 不要忘掉末尾的分号。
数组
Java 类型:String[]
JNI 描述符:[Ljava/lang/String;
Java 类型:int[][]
JNI 描述符:[[I
数组就是简单的在类型描述符前加 [ 即可,二维数组就是两个 [ ,以此类推。
方法
Java 方法:long f (int n, String s, int[] arr);
JNI 描述符:(ILjava/lang/String;[I)J
Java 方法:void f ();
JNI 描述符:()V
括号内是每个参数的类型符,括号外就是返回值的类型符。
参考文章
以上
相关文章
- JAVA只要掌握内部类,多继承和单继承都不是问题
- 今儿直白的用盖房子为例,给你讲讲Java建造者模式
- 用实例带你深入理解Java内存模型
- 你知道,java项目中是如何获取文件地址的吗?
- 【架构师(第十五篇)】脚手架之创建项目模板开发
- 【架构师(第十六篇)】脚手架之创建项目模板的下载与更新
- 【架构师(第十八篇)】脚手架之项目模板的安装
- 【架构师(第十九篇)】脚手架之组件库模板开发
- 【架构师(第二十篇)】脚手架之自定义模板及第一阶段总结
- 【架构师(第二十一篇)】编辑器开发之需求分析和架构设计
- 【架构师(第二十二篇)】编辑器开发之项目整体搭建
- 【架构师(第二十三篇)】编辑器开发之画布区域组件的渲染
- 【架构师(第二十四篇)】编辑器开发之添加模版到画布
- Java异常处理:如何写出“正确”但被编译器认为有语法错误的程序
- 我以订披萨为例,给女朋友详细讲了Java设计模式的3种工厂模式
- 【架构师(第二十五篇)】编辑器开发之属性编辑区域表单渲染
- 【架构师(第二十六篇)】编辑器开发之属性编辑同步渲染
- 2021年度“CCF-腾讯犀牛鸟基金”发布结题评优结果
- 【架构师(第二十七篇)】前端单元测试框架 Jest 基础知识入门
- 太空噗|重燃太空热潮!与噗噗星人一同探索星海浪漫