JNI之初始化全局变量(全局缓存)

1,接口,

// 初始化全局变量
public native static void initIds();

2,动态加载库进行初始化。

static {
    System.loadLibrary("native-lib");
    initIds();
}

3,头文件

JNIEXPORT void JNICALL Java_com_shaoshuaima_test_JniForC_initIds(JNIEnv *, jclass);

4,C++文件

// 初始化全局变量,动态库加载完成之后,立刻进行缓存。
jfieldID key_fid;
jmethodID random_mid;
extern "C"
JNIEXPORT void JNICALL
Java_com_XXX_XXX_XXX_initIds(JNIEnv * env, jclass jcls){
    key_fid = env->GetFieldID(jcls,"key","Ljava/lang/String;");
    random_mid = env->GetMethodID(jcls,"getRandomInt","(I)I");
}

你可能感兴趣的:(Android)