Add dalvik.vm.dex2oat-resolve-startup-strings feature flag

Mapped to the corresponding dex2oat option:
--resolve-startup-const-strings=true|false

Bug: 116059983
Test: setprop dalvik.vm.dex2oat-resolve-startup-strings true
Test: compile an app

(cherry picked from commit 1b2bb04c73adb43e34f9661db604e01a53fcc0ce)

Merged-In: I128436c6b8d3d9ebcc3dbb49160c732b061ba008
Change-Id: I8d2cd1c4f69c01bb8f4dbe1402fcee8f85c243af
diff --git a/cmds/installd/dexopt.cpp b/cmds/installd/dexopt.cpp
index 03a411d..02ee14a 100644
--- a/cmds/installd/dexopt.cpp
+++ b/cmds/installd/dexopt.cpp
@@ -287,6 +287,8 @@
                              (strcmp(vold_decrypt, "1") == 0)));
 
     bool generate_debug_info = property_get_bool("debug.generate-debug-info", false);
+    const bool resolve_startup_strings =
+            property_get_bool("dalvik.vm.dex2oat-resolve-startup-strings", false);
 
     char app_image_format[kPropertyValueMax];
     char image_format_arg[strlen("--image-format=") + kPropertyValueMax];
@@ -442,7 +444,7 @@
     // supported.
     const bool disable_cdex = !generate_compact_dex || (input_vdex_fd == output_vdex_fd);
 
-    const char* argv[9  // program name, mandatory arguments and the final NULL
+    const char* argv[10  // program name, mandatory arguments and the final NULL
                      + (have_dex2oat_isa_variant ? 1 : 0)
                      + (have_dex2oat_isa_features ? 1 : 0)
                      + (have_dex2oat_Xms_flag ? 2 : 0)
@@ -475,6 +477,8 @@
     argv[i++] = oat_fd_arg;
     argv[i++] = oat_location_arg;
     argv[i++] = instruction_set_arg;
+    argv[i++] = resolve_startup_strings ? "--resolve-startup-const-strings=true" :
+            "--resolve-startup-const-strings=false";
     if (have_dex2oat_isa_variant) {
         argv[i++] = instruction_set_variant_arg;
     }