SystemUI的启动流程

不积跬步无以至千里
SystemUI,系统界面,一个系统级的应用,其中包括了很多功能模块,比如锁屏,状态栏,分屏,音量条,多任务等等,让我们一起看一下它的启动.
随着系统的启动通过调用第一个用户空间的init进程调用Zygote进程然后调用SystemServer启动各种系统服务,而我们的SystemUI在其中启动服务中的一项.

一.SystemServer中的启动
代码路径:
frameworks/base/services/java/com/android/server/SystemServer.java
1.

private void run() {
		...
		//AMS,PWS等等服务
		startBootstrapServices();
		//电量,WebView更新等等服务
        startCoreServices();
        //网络,WMS,震动等等服务
        startOtherServices();
        ...
}
//其它服务
private void startOtherServices() {
	...
	mActivityManagerService.systemReady(() -> {
	...
	try {
        startSystemUi(context, windowManagerF);
     } catch (Throwable e) {
        reportWtf("starting System UI", e);
    }
    ...
    }
	...
//启动SystemUI的代码
static final void startSystemUi(Context context, WindowManagerService windowManager) {
        Intent intent = new Intent();
        //指定了包名类名,启动Service
        intent.setComponent(new 

你可能感兴趣的:(SystemUI的启动流程)