Loading cmds/app_process/app_main.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -192,14 +192,14 @@ int main(int argc, char* const argv[]) if (zygote) { runtime.start("com.android.internal.os.ZygoteInit", startSystemServer ? "start-system-server" : ""); startSystemServer ? "start-system-server" : "", zygote); } else if (className) { // Remainder of args get passed to startup class main() runtime.mClassName = className; runtime.mArgC = argc - i; runtime.mArgV = argv + i; runtime.start("com.android.internal.os.RuntimeInit", application ? "application" : "tool"); application ? "application" : "tool", zygote); } else { fprintf(stderr, "Error: no class name or --zygote supplied.\n"); app_usage(); Loading core/jni/AndroidRuntime.cpp +12 −8 Original line number Diff line number Diff line Loading @@ -433,7 +433,7 @@ void AndroidRuntime::parseExtraOpts(char* extraOptsBuf) * * Returns 0 on success. */ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv) int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote) { int result = -1; JavaVMInitArgs initArgs; Loading Loading @@ -642,11 +642,15 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv) } } /* enable debugging; set suspend=y to pause during VM init */ /* use android ADB transport */ /* * Enable debugging only for apps forked from zygote. * Set suspend=y to pause during VM init and use android ADB transport. */ if (zygote) { opt.optionString = "-agentlib:jdwp=transport=dt_android_adb,suspend=n,server=y"; mOptions.add(opt); } ALOGD("CheckJNI is %s\n", checkJni ? "ON" : "OFF"); if (checkJni) { Loading Loading @@ -804,7 +808,7 @@ char* AndroidRuntime::toSlashClassName(const char* className) * Passes the main function two arguments, the class name and the specified * options string. */ void AndroidRuntime::start(const char* className, const char* options) void AndroidRuntime::start(const char* className, const char* options, bool zygote) { ALOGD("\n>>>>>> AndroidRuntime START %s <<<<<<\n", className != NULL ? className : "(unknown)"); Loading Loading @@ -837,7 +841,7 @@ void AndroidRuntime::start(const char* className, const char* options) JniInvocation jni_invocation; jni_invocation.Init(NULL); JNIEnv* env; if (startVm(&mJavaVM, &env) != 0) { if (startVm(&mJavaVM, &env, zygote) != 0) { return; } onVmCreated(env); Loading include/android_runtime/AndroidRuntime.h +2 −2 Original line number Diff line number Diff line Loading @@ -64,7 +64,7 @@ public: int addVmArguments(int argc, const char* const argv[]); void start(const char *classname, const char* options); void start(const char *classname, const char* options, bool zygote); void exit(int code); Loading Loading @@ -116,7 +116,7 @@ public: private: static int startReg(JNIEnv* env); void parseExtraOpts(char* extraOptsBuf); int startVm(JavaVM** pJavaVM, JNIEnv** pEnv); int startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote); Vector<JavaVMOption> mOptions; bool mExitWithoutCleanup; Loading Loading
cmds/app_process/app_main.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -192,14 +192,14 @@ int main(int argc, char* const argv[]) if (zygote) { runtime.start("com.android.internal.os.ZygoteInit", startSystemServer ? "start-system-server" : ""); startSystemServer ? "start-system-server" : "", zygote); } else if (className) { // Remainder of args get passed to startup class main() runtime.mClassName = className; runtime.mArgC = argc - i; runtime.mArgV = argv + i; runtime.start("com.android.internal.os.RuntimeInit", application ? "application" : "tool"); application ? "application" : "tool", zygote); } else { fprintf(stderr, "Error: no class name or --zygote supplied.\n"); app_usage(); Loading
core/jni/AndroidRuntime.cpp +12 −8 Original line number Diff line number Diff line Loading @@ -433,7 +433,7 @@ void AndroidRuntime::parseExtraOpts(char* extraOptsBuf) * * Returns 0 on success. */ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv) int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote) { int result = -1; JavaVMInitArgs initArgs; Loading Loading @@ -642,11 +642,15 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv) } } /* enable debugging; set suspend=y to pause during VM init */ /* use android ADB transport */ /* * Enable debugging only for apps forked from zygote. * Set suspend=y to pause during VM init and use android ADB transport. */ if (zygote) { opt.optionString = "-agentlib:jdwp=transport=dt_android_adb,suspend=n,server=y"; mOptions.add(opt); } ALOGD("CheckJNI is %s\n", checkJni ? "ON" : "OFF"); if (checkJni) { Loading Loading @@ -804,7 +808,7 @@ char* AndroidRuntime::toSlashClassName(const char* className) * Passes the main function two arguments, the class name and the specified * options string. */ void AndroidRuntime::start(const char* className, const char* options) void AndroidRuntime::start(const char* className, const char* options, bool zygote) { ALOGD("\n>>>>>> AndroidRuntime START %s <<<<<<\n", className != NULL ? className : "(unknown)"); Loading Loading @@ -837,7 +841,7 @@ void AndroidRuntime::start(const char* className, const char* options) JniInvocation jni_invocation; jni_invocation.Init(NULL); JNIEnv* env; if (startVm(&mJavaVM, &env) != 0) { if (startVm(&mJavaVM, &env, zygote) != 0) { return; } onVmCreated(env); Loading
include/android_runtime/AndroidRuntime.h +2 −2 Original line number Diff line number Diff line Loading @@ -64,7 +64,7 @@ public: int addVmArguments(int argc, const char* const argv[]); void start(const char *classname, const char* options); void start(const char *classname, const char* options, bool zygote); void exit(int code); Loading Loading @@ -116,7 +116,7 @@ public: private: static int startReg(JNIEnv* env); void parseExtraOpts(char* extraOptsBuf); int startVm(JavaVM** pJavaVM, JNIEnv** pEnv); int startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote); Vector<JavaVMOption> mOptions; bool mExitWithoutCleanup; Loading