1:c++中返回一個字符串
extern "C"
JNIEXPORT jstring JNICALL
Java_com_winmu_ev_JNI_JniLib_getString(JNIEnv *env, jclass type) {
std::string hello = "fromC++";
??? return?env->NewStringUTF(hello.c_str());
}
2:c++中返回一個數(shù)組
extern "C"
JNIEXPORT jintArray JNICALL
Java_com_winmu_ev_JNI_JniLib_getArray(JNIEnv *env, jclass type) {
jintArray array;
jint buf[]={0,0,0,0,0};
array = env->NewIntArray(3);
env->SetIntArrayRegion(array,0,3,buf);
??return?array;
}
3:c++中返回數(shù)組的和,傳入的參數(shù)是數(shù)組 (array 是傳入的數(shù)組)
extern "C"
JNIEXPORT jint JNICALL
Java_com_winmu_ev_JNI_JniLib_getSum(JNIEnv *env, jclass type, jintArray arr_) {
jint *arr = env->GetIntArrayElements(arr_, NULL);
jint sum = 0;
jint len = env->GetArrayLength(arr_);
??? for(int i = 0; i
? ? ? sum = sum + *(arr+i);
}
?env->ReleaseIntArrayElements(arr_, arr, 0);
??? return?sum;
}
4: c++中調(diào)用java中類的方法, 沒有參數(shù) 只有返回值String
// 定義一個靜態(tài)方法 , 提供給JNI調(diào)用
public? voidmethodCalledByJni(String msgFromJni){}
5: c++中調(diào)用java中類的靜態(tài)方法, 沒有參數(shù) 只有返回值String
6: c++中調(diào)用java中類的方法 二個參數(shù) 第一個參數(shù)是int 第二個參數(shù)是String 返回值是String
7: c++中調(diào)用java中的全局變量
8: c++中調(diào)用java中的靜態(tài)的變量