系统启动篇开篇

343 阅读1分钟

Android的知识体系搭建

概述

当我们在启动 Android 系统时,会经历哪些步骤呢,从我们看到的角度来说

  1. 按下开机键,显示开机动画/图片
  2. 开机动画显示完毕,进入桌面显示 loading(早期的手机比较明显)
  3. 桌面等待消失,显示出应用图标

那么从我们程序员的角度来看,这几个步骤具体是经过了哪些事情呢

  1. 手机开机,启动引导程序(硬件方面)
  2. 硬件方面处理完毕,加载一个 main 方法,启动 init 进程
  3. init 进程启动完毕,孵化出 Zygote 进程,而自己开始进行 loop 循环(处理系统进程意外挂掉等事件)
  4. zygote 进程初始化,启动 Java 虚拟机,开始执行 Java 代码
  5. Zygote 做完自己的工作,孵化出 SystemServer 进程,开始 loop 循环
  6. SystemServer 启动系统服务,并在服务启动完的时候启动 Launch 进程
  7. Launch 进程启动,加载安装的 apk,并显示

系统启动完毕

接下来,我们就根据这些系统启动中的关键节点,来看看 android 系统启动的详细过程