diff options
-rw-r--r-- | core/jni/Android.bp | 1 | ||||
-rw-r--r-- | core/jni/AndroidRuntime.cpp | 13 |
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="); /* |