summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastien Hertz <shertz@google.com>2015-08-21 09:53:41 +0200
committerSebastien Hertz <shertz@google.com>2015-08-21 09:53:41 +0200
commitb60bc0ece2b2714845eff37c97cb19d41a308122 (patch)
tree16e677f43d12976b428f95f79ad458e2329010e5
parent504623e1a7b20ff7ce66ec487fb329f4b3d2c3cf (diff)
parenta2d193183fc4f5727c0b875a48c5dd8032bc87bb (diff)
downloadframeworks_base-b60bc0ece2b2714845eff37c97cb19d41a308122.zip
frameworks_base-b60bc0ece2b2714845eff37c97cb19d41a308122.tar.gz
frameworks_base-b60bc0ece2b2714845eff37c97cb19d41a308122.tar.bz2
resolved conflicts for merge of a2d19318 to lmp-mr1-ub-dev
Change-Id: I4cb38241b5efab1eb7af161e1589fa477a473a39
-rw-r--r--cmds/app_process/app_main.cpp4
-rw-r--r--core/jni/AndroidRuntime.cpp16
-rw-r--r--include/android_runtime/AndroidRuntime.h4
3 files changed, 14 insertions, 10 deletions
diff --git a/cmds/app_process/app_main.cpp b/cmds/app_process/app_main.cpp
index c5af992..3a6abd3 100644
--- a/cmds/app_process/app_main.cpp
+++ b/cmds/app_process/app_main.cpp
@@ -307,9 +307,9 @@ int main(int argc, char* const argv[])
}
if (zygote) {
- runtime.start("com.android.internal.os.ZygoteInit", args);
+ runtime.start("com.android.internal.os.ZygoteInit", args, zygote);
} else if (className) {
- runtime.start("com.android.internal.os.RuntimeInit", args);
+ runtime.start("com.android.internal.os.RuntimeInit", args, zygote);
} else {
fprintf(stderr, "Error: no class name or --zygote supplied.\n");
app_usage();
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index 0bfc0c9..c174d37 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -534,7 +534,7 @@ bool AndroidRuntime::parseCompilerRuntimeOption(const char* property,
*
* Returns 0 on success.
*/
-int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv)
+int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote)
{
JavaVMInitArgs initArgs;
char propBuf[PROPERTY_VALUE_MAX];
@@ -667,9 +667,13 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv)
parseRuntimeOption("dalvik.vm.gctype", gctypeOptsBuf, "-Xgc:");
parseRuntimeOption("dalvik.vm.backgroundgctype", backgroundgcOptsBuf, "-XX:BackgroundGC=");
- /* enable debugging; set suspend=y to pause during VM init */
- /* use android ADB transport */
- addOption("-agentlib:jdwp=transport=dt_android_adb,suspend=n,server=y");
+ /*
+ * Enable debugging only for apps forked from zygote.
+ * Set suspend=y to pause during VM init and use android ADB transport.
+ */
+ if (zygote) {
+ addOption("-agentlib:jdwp=transport=dt_android_adb,suspend=n,server=y");
+ }
parseRuntimeOption("dalvik.vm.lockprof.threshold",
lockProfThresholdBuf,
@@ -926,7 +930,7 @@ jstring AndroidRuntime::NewStringLatin1(JNIEnv* env, const char* bytes) {
* Passes the main function two arguments, the class name and the specified
* options string.
*/
-void AndroidRuntime::start(const char* className, const Vector<String8>& options)
+void AndroidRuntime::start(const char* className, const Vector<String8>& options, bool zygote)
{
ALOGD(">>>>>> START %s uid %d <<<<<<\n",
className != NULL ? className : "(unknown)", getuid());
@@ -962,7 +966,7 @@ void AndroidRuntime::start(const char* className, const Vector<String8>& options
JniInvocation jni_invocation;
jni_invocation.Init(NULL);
JNIEnv* env;
- if (startVm(&mJavaVM, &env) != 0) {
+ if (startVm(&mJavaVM, &env, zygote) != 0) {
return;
}
onVmCreated(env);
diff --git a/include/android_runtime/AndroidRuntime.h b/include/android_runtime/AndroidRuntime.h
index fc33b7e..9a3b990 100644
--- a/include/android_runtime/AndroidRuntime.h
+++ b/include/android_runtime/AndroidRuntime.h
@@ -64,7 +64,7 @@ public:
*/
static jclass findClass(JNIEnv* env, const char* className);
- void start(const char *classname, const Vector<String8>& options);
+ void start(const char *classname, const Vector<String8>& options, bool zygote);
void exit(int code);
@@ -131,7 +131,7 @@ private:
const char* runtimeArg,
const char* quotingArg);
void parseExtraOpts(char* extraOptsBuf, const char* quotingArg);
- int startVm(JavaVM** pJavaVM, JNIEnv** pEnv);
+ int startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote);
Vector<JavaVMOption> mOptions;
bool mExitWithoutCleanup;