1.在java中定义方法以及获取C中返回值的方法
public native int[] getArray(int len);
2.javah生成头文件
/*
* Class: com_boom_JNITest
* Method: getArray
* Signature: (I)[I
*/
JNIEXPORT jintArray JNICALL Java_com_boom_JNITest_getArray
(JNIEnv *, jobject, jint);
3.源文件中对代码进行具体实现
//返回数组
JNIEXPORT jintArray JNICALL Java_com_boom_JNITest_getArray
(JNIEnv *env, jobject jobj, jint len){
//创建一个指定大小的数组
jintArray jint_arr = (*env)->NewIntArray(env,len);
jint *elems = (*env)->GetIntArrayElements(env,jint_arr,NULL);
int i = 0;
for (;i<len;i++){
elems[i] = i;
}
//同步
(*env)->ReleaseIntArrayElements(env,jint_arr,elems,0);
return jint_arr;
}
2.javah生成头文件