Pregunta

¿Cómo se mantiene el estado cuando se accede a través de métodos JNI? En el siguiente ejemplo el código Java es una llamada al método drawFromJni nativa, será mi clase nativa _NC ser persistente entre llamadas?

Si había herramientas de depuración mejor nativas para el NDK esto sería bastante fácil de encontrar, pero realmente estoy teniendo problemas con el NDK y 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();
}
¿Fue útil?

Solución

La implementación de las funciones JNI sigue las reglas de alcance para el idioma que está implementando. Si se declara _NC como una variable global (como se ha hecho en su ejemplo), será compartida en toda la aplicación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top