summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/jni/Android.bp1
-rw-r--r--core/jni/AndroidRuntime.cpp13
2 files changed, 13 insertions, 1 deletions
diff --git a/core/jni/Android.bp b/core/jni/Android.bp
index c385ca11611c..f9813fdb65ab 100644
--- a/core/jni/Android.bp
+++ b/core/jni/Android.bp
@@ -290,6 +290,7 @@ cc_library_shared {
"libhwui",
"libdl",
"libstatslog",
+ "server_configurable_flags",
],
generated_sources: ["android_util_StatsLog.cpp"],
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index 565fa6f63120..55fb27e8d57c 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -31,6 +31,7 @@
#include <binder/Parcel.h>
#include <utils/threads.h>
#include <cutils/properties.h>
+#include <server_configurable_flags/get_flags.h>
#include <SkGraphics.h>
@@ -769,7 +770,17 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote)
addOption("-XX:LowMemoryMode");
}
- parseRuntimeOption("dalvik.vm.gctype", gctypeOptsBuf, "-Xgc:");
+ std::string gc_type_override =
+ server_configurable_flags::GetServerConfigurableFlag("runtime_native", "gctype", "");
+ std::string gc_type_override_temp;
+ if (gc_type_override.empty()) {
+ parseRuntimeOption("dalvik.vm.gctype", gctypeOptsBuf, "-Xgc:");
+ } else {
+ // Copy the string so it doesn't go out of scope since addOption does not make a copy.
+ gc_type_override_temp = "-Xgc:" + gc_type_override;
+ addOption(gc_type_override_temp.c_str());
+ }
+
parseRuntimeOption("dalvik.vm.backgroundgctype", backgroundgcOptsBuf, "-XX:BackgroundGC=");
/*