Android Boot Slice(1st)
基本流程再捋一遍:
Kernel ---> init ---> (by RC script) ---> zygote(app_process NATIVE) ---> Android Runtime ---> StartVm ---> zygote init(JAVA) ---> systemserver ---> PMS+AMS+...
When Create Android Runtime Instance
log_event里面的boot_progress_start
AndroidRuntime.cpp
LOG_EVENT_LONG(LOG_BOOT_PROGRESS_START, ns2ms(systemTime(SYSTEM_TIME_MONOTONIC)));
When init zygote java instance after startVM
ZygoteInit.java
log_event里面的boot_progress_preload_start
EventLog.writeEvent(LOG_BOOT_PROGRESS_PRELOAD_START,
SystemClock.uptimeMillis());
preload();
log_event里面的boot_progress_preload_end
EventLog.writeEvent(LOG_BOOT_PROGRESS_PRELOAD_END,
SystemClock.uptimeMillis());