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

(cherry picked from commit 995c62d6ab)

Change-Id: I32a13357893222b25fbce60bf2367c23fb36ab22
This commit is contained in:
Andreas Gampe
2014-11-14 16:15:17 -08:00
parent 34c495d2e9
commit 65ff8ee134

View File

@@ -348,6 +348,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.
*/
@@ -760,10 +769,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");