Android JNI中的数据传递
2024-09-04 16:49:08
1、JNI 基本类型
当 Java 代码与本地代码 C/C++ 代码相互调用时,肯定会有参数的传递。两者属于不同的语言,数据类型有差别,此时,JNI 要保证两种语言之间的数据类型和数据空间大小的匹配。
比如:Java 中 char 类型占 2 个字节,int 类型占 4 个字节;但在 C 语言中,char 类型占 1 个字节,int 类型的长度与平台有关。
为了两种语言类型和长度的匹配,JNI 定义了新的数据类型。
Java 数据类型 | JNI 数据类型 |
boolean | jboolean |
byte | jbyte |
char | jchar |
short | jshort |
int | jint |
long | jlong |
float | jfloat |
double | jdouble |
所有引用类型 | jobject |
2、JNI 引用类型
在本地代码中为了访问 Java 运行环境中的引用类型,在 JNI 中也定义了一套对应的引用类型,
JNI 引用类型 | Java 引用类型 |
jobject | 所有引用类型父类 Object |
jclass | java.lang.Class 类型 |
jstring | java.lang.Class 类型 |
jarray | 数组类型 |
jobjectArray | 对象数组类型 |
jbooleanArray | 布尔数组类型 |
jbyteArray | 字节数组类型 |
jcharArray | 字符数组类型 |
jshortArray | 短整型数组类型 |
jintArray | 整型数组类型 |
jlongArray | 长整型数组类型 |
jfloatArray | 浮点数组类型 |
jdoubleArray | 双精度数组类型 |
jthrowArray | java.lang.Throwadble 类型 |
最新文章
- 设计模式之合成/聚合利用原则(CARP)
- 浅谈P2P金融
- 6.bootstrap练习笔记-缩略图和list-group
- freeCodeCamp:Where do I belong
- 一道SQL面试例题 if...else 与聚集函数
- Plotting means and error bars (ggplot2)
- 错误处理--pure specifier can only be specified for functions
- springmvc的系统学习之配置方式
- loadrunner中lr_log_message和lr_output_message 的区别
- Java 输入流读取文本文件换行符问题
- linux多线程驱动中调用udelay()对整个系统造成的影响(by liukun321咕唧咕唧)
- SQL从入门到基础 - 05 数据分组、Having语句
- JavaScript 变量类型 保存内存中的位置 和 引用
- Wireshark入门与进阶系列(一)
- jquery prop和attr的区别
- 用CSS写气泡
- arm寄存器
- django 利用pillow 进行简单的设置验证码(python)
- Linux systemctl 命令完全指南
- TFT2.2
热门文章
- ansible入门三(Ansible的基础元素和YAML介绍)
- js 可拉伸表格
- socket的几个配置函数
- LeetCode OJ:Longest Increasing Subsequence(最长递增序列)
- LeetCode OJ:House Robber II(房屋窃贼II)
- PHP for循环的写法和示例
- Linux(CentOS 7) 新增或修改 SSH默认端口
- MoreEffectiveC++Item35 条款25 将constructor和non-member functions虚化
- 2018-2019-2 网络对抗技术 20165202 Exp6 信息搜集与漏洞扫描
- windows下类似Linux下的grep命令