美文网首页
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