5张图搞懂Android系统启动的核心流程( 三 )


//SystemServer.javaprivate void startBootstrapServices() {//由SSM创建启动mActivityManagerService = mSystemServiceManager.startService(ActivityManagerService.Lifecycle.class).getService();mActivityManagerService.setSystemServiceManager(mSystemServiceManager);}private void startOtherServices() {//AMS准备就绪mActivityManagerService.systemReady(...);}
总结一下,进程被创建后,主要做了3件事情:启动线程池、创建(SSM)、用SSM启动各种服务 。

5张图搞懂Android系统启动的核心流程

文章插图
/ 的启动 /
作为的桌面,用于管理应用图标和桌面组件 。
前边可知进程会启动各种服务,其中e启动后会将系统中的应用程序安装完成,然后由AMS来启动 。
//SystemServer.javaprivate void startOtherServices() {//AMS准备就绪mActivityManagerService.systemReady(...);}
跟进ce 。
//ActivityManagerService.javapublic void systemReady(...) {//经过层层调用来到startHomeActivityLocked}boolean startHomeActivityLocked(...) {//最终会启动Launcher应用的ActivitymActivityStarter.startHomeActivityLocked(...);}
类是.java,剩下的流程就是加载已安装的应用程序信息,然后展示,就不具体分析了 。
5张图搞懂Android系统启动的核心流程

文章插图
/ 总结 /
系统启动的核心流程如下:
Linux内核启动
init进程启动
init进程fork出进程
进程fork出进程
进程启动各项服务(PMS、AMS等)
AMS服务启动桌面
5张图搞懂Android系统启动的核心流程

文章插图
进程启动好服务端后,便会等待AMS的请求,来创建应用程序进程 。
细节补充