Ndk学習のJNI取得配列(Java-->C->Java)

737 ワード

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 (;iReleaseIntArrayElements(env,jint_arr,elems,0);

	return jint_arr;
}

2.javah生成ヘッダファイル