Bootstrap

1.1 Android启动概览

第一章 系统启动流程分析
第一节 Android启动概览
Android 启动过程从设备加电到显示用户界面,涉及多个阶段。以下是详细的启动过程概览:

  1. 启动加载程序(Bootloader):

    • 设备通电后,启动加载程序开始运行。
    • 它的主要任务是初始化硬件,加载并启动内核。
    • 启动加载程序通常分为两个阶段:第一阶段和第二阶段。
      • 第一阶段加载基本硬件初始化代码并执行它。
      • 第二阶段加载更复杂的硬件初始化代码,最终加载内核。
  2. 内核(Kernel):

    • 启动加载程序将内核加载到内存并启动它。
    • 内核负责初始化硬件组件和设备驱动。
    • 内核完成初始化后,挂载根文件系统并启动第一个用户空间进程——init
  3. 初始化进程(Init Process):

    • init 是用户空间的第一个进程,负责启动和管理其他系统进程。
    • init 根据 /init.rc 文件进行系统配置和初始化。
    • 它启动各种守护进程,挂载必要的文件系统,并设置系统属性。
  4. Zygote 进程:

    • init 启动 Zygote 进程,这是一个特殊的进程,用于快速创建新应用进程。
    • Zygote 预加载常用的类和资源,通过 fork() 系统调用创建新的应用进程,从而加快应用启动速度。
  5. SystemServer 进程:

    • Zygote 创建 SystemServer 进程。
    • SystemServer 启动并管理核心系统服务,如 Activity Manager、Window Manager 和 Package Manager。
    • 这些服务提供应用程序运行所需的功能和支持。
  6. 启动界面和 Launcher 应用:

    • SystemServer 启动并初始化所有系统服务后,会启动 Launcher 应用。
    • Launcher 是 Android 的桌面应用,为用户提供启动其他应用的界面。
    • 一旦 Launcher 启动并显示,Android 系统的启动过程就完成了。

总结:Android 启动过程包括启动加载程序、内核加载、初始化进程、Zygote 进程启动、SystemServer 进程启动和最终的用户界面显示。这一系列步骤确保设备硬件和软件的顺利初始化和运行。

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;