Java到C数据类型转换
1 基础类型
Java与Jni类型对应关系
2 String到char数组
具体使用方式
JNIEXPORT jstring JNICALL Java_com_zhoulee_jnidemon_JniDemo_UseJniDataType (JNIEnv *env, jobject obj, jstring prompt) { const jbyte *str = (*env)->GetStringUTFChars(env, prompt, NULL); if(str == NULL) { LOGE("GetStringUTFChars Failed"); return NULL; } LOGD("jni prompt [%s]", str); (*env)->ReleaseStringUTFChars(env, prompt, str); char buf[] = "=============Jni OutPut================"; jstring retStr = (*env)->NewStringUTF(env, buf); return retStr; }
3 数组类型
整型数组Jni访问示例:
JNIEXPORT jint JNICALL Java_com_zhoulee_jnidemon_JniDemo_SumArray (JNIEnv *env, jobject obj, jintArray arry) { jint* carr = (*env)->GetIntArrayElements(env, arry, NULL); if(NULL == carr) { return 0; } int len = (*env)->GetArrayLength(env, arry); LOGD("input array length [%d]", len); int sum = 0; int cnt = 0; for(; cnt < len; ++cnt) { sum += carr[cnt]; } return sum; }