How to interact with java object in cpp
Http://www.blogjava.net/vagasnail/articles/301124.html
Also frameworks \ base \ core \ jni \ android_app_NativeActivity.cpp
Static const char * const kNativeActivityPathName = "android/app/NativeActivity ";
# Define FIND_CLASS (var, className )\
Var = env-> FindClass (className );\
LOG_FATAL_IF (! Var, "Unable to find class" className );\
Var = jclass (env-> NewGlobalRef (var ));
# Define GET_METHOD_ID (var, clazz, methodName, fieldDescriptor )\
Var = env-> GetMethodID (clazz, methodName, fieldDescriptor );\
LOG_FATAL_IF (! Var, "Unable to find method" methodName );
Int register_android_app_NativeActivity (JNIEnv * env)
{
// LOGD ("register_android_app_NativeActivity ");
FIND_CLASS (gNativeActivityClassInfo. clazz, kNativeActivityPathName );
GET_METHOD_ID (gNativeActivityClassInfo. dispatchUnhandledKeyEvent,
GNativeActivityClassInfo. clazz,
"DispatchUnhandledKeyEvent", "(Landroid/view/KeyEvent;) V ");
GET_METHOD_ID (gNativeActivityClassInfo. preDispatchKeyEvent,
GNativeActivityClassInfo. clazz,
"PreDispatchKeyEvent", "(Landroid/view/KeyEvent; I) V ");
GET_METHOD_ID (gNativeActivityClassInfo. finish,
GNativeActivityClassInfo. clazz,
"Finish", "() V ");
GET_METHOD_ID (gNativeActivityClassInfo. setWindowFlags,
GNativeActivityClassInfo. clazz,
"SetWindowFlags", "(II) V ");
GET_METHOD_ID (gNativeActivityClassInfo. setWindowFormat,
GNativeActivityClassInfo. clazz,
"SetWindowFormat", "(I) V ");
GET_METHOD_ID (gNativeActivityClassInfo. showIme,
GNativeActivityClassInfo. clazz,
"ShowIme", "(I) V ");
GET_METHOD_ID (gNativeActivityClassInfo. hideIme,
GNativeActivityClassInfo. clazz,
"HideIme", "(I) V ");
Return AndroidRuntime: registerNativeMethods (
Env, kNativeActivityPathName,
G_methods, NELEM (g_methods ));
}