通过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();
}
答案 0 :(得分:1)
JNI函数的实现遵循您正在实现的语言的作用域规则。如果您将_nc声明为全局变量(就像您在示例中所做的那样),它将在整个应用程序中共享。