2018-06-06 jni (c++)入門

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)的變量

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容