jni调用基础知识

此文主要讲 jni 调用java 对象的数据和数据类型的处理

c++调用java的一般步骤:

  • 获得类

     jclass jclass1 = env->GetObjectClass(jobj);// 通过调用的方法获取类型
     // jclass 类型 和 GetObjectClass() 来自 jni.h 头文件 所以该操作需要引入#include 
    
  • 通过类获取响应的变量的id

     jfieldID fid = env->GetFieldID(jclass1, "num", "I"); //获取字段id,
    

    I表示数据的基本类型

  • 通过id和对象获取指定字段的值

      jint num = env->GetIntField(jobj, fid);  //注意,不是用 jclazz, 使用 jobj ,获取int 值
    
  • java基本数据类型和表示符号的对应关

    java jni符号
    byte B
    boolean Z
    char C
    short S
    int I
    long L
    float F
    double D
    void V
    objects对象 Lfully-qualified-class-name; L类名;
    Arrays数组 [array-type [数组类型
    methods方法 (argument-types)return-type(参数类型)返回类型

你可能感兴趣的:(jni调用基础知识)