AMS 启动过程源码解析
功能概述
- 负责四大组件的启动、调度和销毁
- 应用程序的进程管理和调度
启动过程源码解析
- AMS 在 SystemServer 进程中启动的主要入口
public static void main(String[] args) {
new SystemServer().run();
}
- run 函数中的工作
private void run() {
try {
...
System.loadLibrary("android_servers");
...
createSystemContext();
mSystemServiceManager = new SystemServiceManager(mSystemContext);
mSystemServiceManager.setRuntimeRestarted(mRuntimeRestart);
LocalServices.addService(SystemServiceManager.class, mSystemServiceManager);
SystemServerInitThreadPool.get();
} finally {
traceEnd();
}
try {
traceBeginAndSlog("StartServices");
startBootstrapServices();
startCoreServices();
startOtherServices();
SystemServerInitThreadPool.shutdown();
} catch (Throwable ex) {
...
} {
traceEnd();
}
...
}