Introduce ZygoteInit.preForkInit().
Until recently, I and apparently some others were under the assumption that RuntimeInit.commonInit() runs before the Zygote fork. Actually, it does not. This CL introduces a method ZygoteInit.preForkInit() which runs before the Zygote fork. For now, only enableDdms() moves into it and can become private. This should not alter behavior since enableDdms() is called from the same places as before, and because enableDdms() (now private) was already not part of any API surface. The CL also removes the qualifier "final" from the (static) method enableDdms(), because it is redundant. Note: This CL was uploaded with --no-verify because of preexisting import ordering issues in RuntimeInit.java Test: Treehugger Change-Id: I8f637e160a2d7810feb43b6a43ec7d628af18fb8
This commit is contained in:
@@ -192,6 +192,15 @@ public class RuntimeInit {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Common initialization that (unlike {@link #commonInit()} should happen prior to
|
||||
* the Zygote fork.
|
||||
*/
|
||||
public static void preForkInit() {
|
||||
if (DEBUG) Slog.d(TAG, "Entered preForkInit.");
|
||||
RuntimeInit.enableDdms();
|
||||
}
|
||||
|
||||
@UnsupportedAppUsage
|
||||
protected static final void commonInit() {
|
||||
if (DEBUG) Slog.d(TAG, "Entered RuntimeInit!");
|
||||
@@ -324,7 +333,7 @@ public class RuntimeInit {
|
||||
|
||||
@UnsupportedAppUsage
|
||||
public static final void main(String[] argv) {
|
||||
enableDdms();
|
||||
preForkInit();
|
||||
if (argv.length == 2 && argv[1].equals("application")) {
|
||||
if (DEBUG) Slog.d(TAG, "RuntimeInit: Starting application");
|
||||
redirectLogStreams();
|
||||
@@ -418,7 +427,7 @@ public class RuntimeInit {
|
||||
/**
|
||||
* Enable DDMS.
|
||||
*/
|
||||
static final void enableDdms() {
|
||||
private static void enableDdms() {
|
||||
// Register handlers for DDM messages.
|
||||
android.ddm.DdmRegister.registerHandlers();
|
||||
}
|
||||
|
||||
@@ -835,7 +835,7 @@ public class ZygoteInit {
|
||||
TimingsTraceLog bootTimingsTraceLog = new TimingsTraceLog(bootTimeTag,
|
||||
Trace.TRACE_TAG_DALVIK);
|
||||
bootTimingsTraceLog.traceBegin("ZygoteInit");
|
||||
RuntimeInit.enableDdms();
|
||||
RuntimeInit.preForkInit();
|
||||
|
||||
boolean startSystemServer = false;
|
||||
String zygoteSocketName = "zygote";
|
||||
|
||||
Reference in New Issue
Block a user