JNI之缓存策略(局部缓存)

// 缓存策略
// 这里的static是局部静态变量,key_id对象在缓存中缓存一次。
extern "C"
JNIEXPORT void JNICALL
Java_com_shaoshuaima_test_JniForC_cached(JNIEnv * env, jobject jobj){
    jclass cls = env->GetObjectClass(jobj);
    // 获取jfieldID只获取一次
    // 局部的静态变量
    static jfieldID key_id = NULL;
    if (key_id == NULL){
        key_id = env->GetFieldID(cls,"key","Ljava/lang/String;");
        LOGD("%s\n","-------------GetFieldId------");
    }

}

你可能感兴趣的:(Android)