Android WMS——系统服务(二)

        WMS 作为系统服务,也是在 SystemServer 内部启动的。Android 系统在启动的时候,会启动两个重要的进程,一个是 Zygote 进程,另一个是由 Zygote 进程 fork 出来的 system_server 进程,SystemServer 会启动我们在系统中所需要的一系列 Service。

一、服务启动

1、SystemServer

源码位置:/frameworks/base/services/java/com/android/server/SystemServer.java

private void startOtherServices() {
    ……
    // 声明了 WMS 和 IMS
    WindowManagerService wm = null;
    InputManagerService inputManager = null;
    ……
    // 创建了 IMS 
    t.traceBegin("StartInputManagerService");
    inputManager = new InputManagerService(context);
    t.traceEnd();

    t.traceBegin("StartWindowManagerService");
    // WMS需要传感器服务准备好
    mSystemServiceManager.startBootPhase(t, SystemService.PHASE_WAIT_FOR_SENSOR_SERVICE);
    // 调用了 WMS 的 main 方法,并且传入了 IMS。WMS 是 IMS 的中转站。
    // WindowManagerService.main方法运行在SystemServer的run方法中,即运行在system_server线程中。
    wm = 

你可能感兴趣的:(Android,WMS,android,WMS)