Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 995c62d6 authored by Andreas Gampe's avatar Andreas Gampe
Browse files

Frameworks/base: AndroidRuntime standalone preloaded-classes

Change AndroidRuntime::startVM to give the new standalone
preloaded-classes file to the runtime for compilation of images.

Bug: 18305157
Change-Id: I32a13357893222b25fbce60bf2367c23fb36ab22
parent 99253d00
Loading
Loading
Loading
Loading
+18 −3
Original line number Diff line number Diff line
@@ -356,6 +356,15 @@ static int hasDir(const char* dir)
    return 0;
}

static bool hasFile(const char* file) {
    struct stat s;
    int res = stat(file, &s);
    if (res == 0) {
        return S_ISREG(s.st_mode);
    }
    return false;
}

/*
 * Read the persistent locale.
 */
@@ -768,10 +777,16 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv)
            parseCompilerOption("dalvik.vm.image-dex2oat-filter", dex2oatImageCompilerFilterBuf,
                                "--compiler-filter=", "-Ximage-compiler-option");
        }

        // Make sure there is a preloaded-classes file.
        if (!hasFile("/system/etc/preloaded-classes")) {
            ALOGE("Missing preloaded-classes file, /system/etc/preloaded-classes not found: %s\n",
                  strerror(errno));
            goto bail;
        }
        addOption("-Ximage-compiler-option");
        addOption("--image-classes-zip=/system/framework/framework.jar");
        addOption("-Ximage-compiler-option");
        addOption("--image-classes=preloaded-classes");
        addOption("--image-classes=/system/etc/preloaded-classes");

        property_get("dalvik.vm.image-dex2oat-flags", dex2oatImageFlagsBuf, "");
        parseExtraOpts(dex2oatImageFlagsBuf, "-Ximage-compiler-option");