美文网首页
JNI中基本类型数组的传递方法

JNI中基本类型数组的传递方法

作者: Nothing_655f | 来源:发表于2020-06-19 14:08 被阅读0次

    1、先看基本函数方法

    GetIntArrayElements();//得到的是副本,要拷贝数据  
    ReleaseIntArrayElements();//对应上面的函数的释放资源的函数  
    
    env->GetPrimitiveArrayCritical();//得到的是指向原数据的指针  
    env->ReleasePrimitiveArrayCritical();////对应上面的函数的释放资源的函数  
    

    官方文档:JNI doc

    2、JNI .h 文件生成

    可以看之前的一篇文档
    Java 生成 JNI 头文件

    3、用法Demo

    extern "C"
    JNIEXPORT void JNICALL
    Java_com_example_MainActivity_array(JNIEnv *env, jobject instance,jintArray array_) 
    {
      int size = env->GetArrayLength(array_);
      int *array = env->GetIntArrayElements(array_, NULL);
      for (int i = 0; i <size; ++i) {
        printf("array[%d]=%d",  i, *(array + i));
      }
      env->ReleaseIntArrayElements(array_, array, 0);
    }
    

    具体更详细的文档可以看这一篇 Jni中C++和Java的参数传递

    相关文章

      网友评论

          本文标题:JNI中基本类型数组的传递方法

          本文链接:https://www.haomeiwen.com/subject/fymvxktx.html