Android JNI開發系列(八)修改數組 原

JNI 修改數組

package org.professor.jni.bean;

/**
 * Created by peng on 2018/10/10.
 */
public class Student {

    private int[] score = {80, 95, 60, 100, 75};

    public native boolean modifyStuScore(int[] stuScore);

}

JNIEXPORT jboolean JNICALL
Java_org_professor_jni_bean_Student_modifyStuScore(JNIEnv *env, jobject instance,
                                                   jintArray stuScore_) {
    jsize length = (*env)->GetArrayLength(env, stuScore_);
    jint *score = malloc(sizeof(jint) * length); //分配新的操作
    if (NULL == score) {
        return JNI_FALSE;
    }
    for (int i = 0; i < length; ++i) {
        score[i] = 80;
    }
    //score 複製到 stuScore_
    (*env)->SetIntArrayRegion(env, stuScore_, 0, length, score);

    free(score);
    return JNI_TRUE;

}

Java 調用:

Main(){
    Student stuObj = new Student();
    
    stuObj.modifyStuScore(stuObj.score);
    
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章