zygote进程被启动后,创建JVM实例
JNIEnv* env;
if (startVm(&mJavaVM, &env) != 0) {
return;
}
onVmCreated(env);
以后调用任何JAVA CODE都是通过env来执行
env->CallStaticVoidMethod(startClass, startMeth, strArray);
这就是调JAVA的某个类的某个方法比如ZYGOTEINIT.JAVA.MAIN,以后就是执行的JAVA代码了。
复制进程时这个虚拟机实例也被复制,所以JAVA代码执行总是由每一个进程的JVM INSTANCE执行。
本文介绍Zygote进程启动后如何创建JVM实例,并通过JNIEnv调用Java代码。详细解析了JNIEnv如何调用静态Java方法及Java代码在每个进程中的执行方式。

4990

被折叠的 条评论
为什么被折叠?



