我正在尝试修改android上的chrome用于研究目的。
Chromium带有ContentViewCore.java class。该类调用本机函数:
nativeEvaluateJavaScript(mNativeContentViewCore, script, null, true);
此方法在以下相同的类中定义:
private native void nativeEvaluateJavaScript(long nativeContentViewCoreImpl,
String script, JavaScriptCallback callback, boolean startRenderer);
该类具有以下注释:
@JNINamespace("content")
据我所知,JNI Generator将这些方法与正确类的正确本机(c ++)方法联系起来。
我的问题: ContentViewCore.java链接到哪个类?我在哪里可以找到nativeEvaluateJavaScript的实现?在哪里定义特定的java类链接到特定的c ++类?
我唯一能找到的是content_view_core.h(src / content / public / browser / android),但该文件不会让我更进一步。 Googeling为'nativeEvaluateJavaScript'没有透露任何信息。我现在已经找了大约10个小时,而且我没有接近。
答案 0 :(得分:3)
JNI生成器将在构建期间在“(SHARED_INTERMEDIATE_DIR)/<(jni_gen_package)/ jni /”下生成JNI绑定文件。
例如,ContentViewCore.java的相应JNI绑定文件是“out / Debug / gen / content / jni / ContentViewCore_jni.h”。你可以看到'nativeEvaluateJavaScript'的原生方法:
static void EvaluateJavaScript(JNIEnv* env, jobject jcaller,...