JNI申请国

时间:2010-02-19 17:13:38

标签: java c++ java-native-interface android-ndk

通过JNI访问方法时如何保持状态?在下面的示例中,我的Java代码调用本机方法drawFromJni,我的本机类_nc是否会在调用之间保留?

如果NDK有更好的原生调试工具,那么很容易找到,但我真的遇到了NDK和C ++的问题。

extern "C" {
 JNIEXPORT void JNICALL Java_com_jnitest_SurfaceRenderer_drawFromJni(JNIEnv * env, jobject obj);
};

myNativeClass _nc;
JNIEXPORT void JNICALL Java_com_jnitest_SurfaceRenderer_drawFromJni(JNIEnv *  env)
{
     _nc.draw();
}

1 个答案:

答案 0 :(得分:1)

JNI函数的实现遵循您正在实现的语言的作用域规则。如果您将_nc声明为全局变量(就像您在示例中所做的那样),它将在整个应用程序中共享。