• JNI_Z_02_函数参数_JNIEnv*_jclass_jobject


    1、

      1.1、JNIEXPORT void JNICALL Java_包名_类名_函数名01(JNIEnv * env, jclass clazz)  // Java代码中的 静态函数

      1.2、JNIEXPORT void JNICALL Java_包名_类名_函数名02(JNIEnv * env, jobject obj)  // Java代码中的 非静态函数

    2、参数解释:

    2.1、参数中的 JNIEnv* env参数的解释:

      JNIEnv类型实际上代表了Java环境,通过这个JNIEnv* 指针,就可以对Java端的代码进行操作。例如,创建Jaa类中的对象,调用Java对象的方法,获取Java对象中的属性等等。

      JNIEnv的指针会被JNI传入到本地方法的实现函数中来对Java端的代码进行操作。

      JNIEnv类中有很多函数可以用:
        NewObject:创建Java类中的对象
        NewString:创建Java类中的String对象
        New<Type>Array:创建类型为Type的数组对象
        Get<Type>Field:获取类型为Type的字段
        Set<Type>Field:设置类型为Type的字段的值
        GetStatic<Type>Field:获取类型为Type的static的字段
        SetStatic<Type>Field:设置类型为Type的static的字段的值
        Call<Type>Method:调用返回类型为Type的方法
        CallStatic<Type>Method:调用返回值类型为Type的static方法
       等许多的函数,具体的可以查看jni.h文件中的函数名称。

    2.2、参数 : jobject obj的解释:

      2.2.1、如果native方法是static的话,这个obj就代表这个native方法的类的class对象实例(static方法不需要类实例的,所以就代表这个类的class对象)

        ZC: 即 函数参数中的"jclass clazz"

      2.2.2、如果native方法不是static的话,这个obj就代表这个native方法的类实例

        ZC: 即 函数参数中的"jobject obj"

    3、

  • 相关阅读:
    排查和解决线上SQL和连接和hung住等问题
    动态模型中嵌入静态模型实践
    敏捷 ? DevOps ?
    Redis stream性能测试实践【Java版】
    性能测试中的随机数性能问题探索
    jdbc自带MySQL连接池实践
    延迟队列DelayQueue性能测试
    Java的标识符(命名规范)
    C# 数据类型与类型转换
    C#初识
  • 原文地址:https://www.cnblogs.com/javaskill/p/5421111.html
Copyright © 2020-2023  润新知