zoukankan      html  css  js  c++  java
  • Android JNI中的数据传递

    1、JNI 基本类型

    当 Java 代码与本地代码 C/C++ 代码相互调用时,肯定会有参数的传递。两者属于不同的语言,数据类型有差别,此时,JNI 要保证两种语言之间的数据类型和数据空间大小的匹配。

    比如:Java 中 char 类型占 2 个字节,int 类型占 4 个字节;但在 C 语言中,char 类型占 1 个字节,int 类型的长度与平台有关。

    为了两种语言类型和长度的匹配,JNI 定义了新的数据类型。

    JNI 与 Java 数据类型对应关系表
    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 引用类型对应关系表
    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 类型
  • 相关阅读:
    Python全栈开发之6、面向对象
    Python全栈开发之5、模块
    kvm恢复和删除快照
    virsh命令和虚拟机克隆
    Python全栈开发之4、迭代器、生成器、装饰器
    索引
    字段属性--唯一键
    安装虚拟机
    字段属性--自增长
    centos7安装kvm
  • 原文地址:https://www.cnblogs.com/lialong1st/p/8989579.html
Copyright © 2011-2022 走看看