SystemUi 啟動(dòng)流程(8.1)

1? ?SystemServer.java -> startSystemUi()

? ? ?static final void startSystemUi(Context context, WindowManagerService windowManager) {

? ? ? ? Intent intent = new Intent();

? ? ? ? intent.setComponent(new ComponentName("com.android.systemui",

? ? ? ? ? ? ? ? ? ? "com.android.systemui.SystemUIService"));

? ? ? ? intent.addFlags(Intent.FLAG_DEBUG_TRIAGED_MISSING);

? ? ? ? //Slog.d(TAG, "Starting service: " + intent);

? ? ? ? context.startServiceAsUser(intent, UserHandle.SYSTEM);

? ? ? ? windowManager.onSystemUiStarted();

? ? }

2? SystemUIService.java->onCreate()

((SystemUIApplication) getApplication()).startServicesIfNeeded();

3 SystemUIApplication.java->startServicesIfNeeded()

private void startServicesIfNeeded(Class<?>[] services) {

? ? ? ? if (mServicesStarted) {

? ? ? ? ? ? return;

? ? ? ? }

? ? ? ? if (!mBootCompleted) {

? ? ? ? ? ? // check to see if maybe it was already completed long before we began

? ? ? ? ? ? // see ActivityManagerService.finishBooting()

? ? ? ? ? ? if ("1".equals(SystemProperties.get("sys.boot_completed"))) {

? ? ? ? ? ? ? ? mBootCompleted = true;

? ? ? ? ? ? ? ? if (DEBUG) Log.v(TAG, "BOOT_COMPLETED was already sent");

? ? ? ? ? ? }

? ? ? ? ? ?...................

? ? ? ? ? ?mServices[i].start(); //開啟服務(wù)

? ? ? ? }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容