VM启动时需要一些启动参数,包含标准参数和非标准参数。这里涉及到两个标准参数:-Xcheck:jni和-verbose:jni。
这两个参数都设置的话,JNI调用路径就可以由dalvikvm打印出来,并通过logcat看到。
可以在下面这个文件中控制是否为VM添加这两个启动参数。
/frameworks/base/core/jni/AndroidRuntime.cpp
先看一下第一个代码片段
property_get("dalvik.vm.checkjni", propBuf, "");
if (strcmp(propBuf, "true") == 0) {
checkJni = true;
} else if (strcmp(propBuf, "false") != 0) {
/* property is neither true nor false; fall back on kernel parameter */
property_get("ro.kernel.android.checkjni", propBuf, "");
if (propBuf[0] == '1') {
checkJni = true;
}
}
"dalvik.vm.checkjni