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 类型
  • 相关阅读:
    generator
    JS 中 apply 、call 、bind的详解
    前端面试题(24-js)
    JS原型链深入了解
    Java12新特性
    Java11-ZGC
    Java11新特性
    Java10新特性
    Java9新特性
    CF1385E【Directing Edges】 (拓扑排序)
  • 原文地址:https://www.cnblogs.com/lialong1st/p/8989579.html
Copyright © 2011-2022 走看看