当前位置: 首页 > news >正文

【Android基础回顾】三:Android启动流程

Android 系统的启动流程主要包括从设备加电开始,到系统完全启动并进入用户界面这一全过程,涉及到多个阶段。整个流程大致可以分为以下五大步骤:

1.Bootloader 阶段

这个阶段初始化硬件,启动内核(Linux Kernel)。
加电后,CPU从固定地址读取Boot ROM中的代码。Boot ROM会加载 Bootloader(如 Qualcomm 的 Little Kernel、Fastboot)。

Bootloader 做以下几件事:
初始化 CPU、内存(RAM)、电源管理芯片等基础硬件。
加载设备树(Device Tree)和内核镜像(zImage 或 Image.gz)。
把控制权交给内核(通过跳转到内核入口点)。

2.Linux Kernel 阶段

这个阶段主要是初始化系统核心组件,挂载根文件系统(RootFS)。

Kernel 开始执行,初始化调度器、中断控制器、内存管理、驱动等。
加载 initramfs(初始临时文件系统)。
挂载真正的 RootFS(一般为 system.img)。
启动第一个用户态进程 init。

3.init 进程阶段(用户空间初始化)

这个阶段启动核心服务和守护进程,为 Android Framework 做准备。

执行init.rc 脚本,配置服务和参数(如 zygote、servicemanager)。
启动 ueventd:管理设备节点的权限。
启动 vold:处理存储设备挂载。

4. Zygote 进程阶段

启动 Java 虚拟机,孵化(fork)出系统和应用进程。

init 启动 zygote(一个 Java 进程)。
Zygote 初始化 Dalvik/ART 虚拟机环境。
加载核心类库(如 android.*)、SystemServer。
后续所有 Java 应用进程都会由 Zygote 进程 fork() 出来。

5.SystemServer 与 Launcher 阶段

SystemServer是 Android Framework 的核心进程,负责启动系统服务。
包括 ActivityManagerService(AMS)、PackageManagerService(PMS)、WindowManagerService(WMS)等。

启动完成后,SystemServer 通知 AMS 启动 Launcher(桌面应用)。

总体流程如下:

在这里插入图片描述

Q&A

ServiceManager 在哪个阶段?

具体流程位置:

加电 → Bootloader → Kernel → init 进程 → 启动 ServiceManager → 启动 Zygote

首先,ServiceManager 是什么?它是 Binder IPC 的守护进程。
所有 Android 系统服务(如 AMS、WMS、PMS 等)都通过它注册和查找。
是 Android Binder IPC 的“注册中心”。

在 init.rc 脚本中可以找到类似的配置:

service servicemanager /system/bin/servicemanagerclass coreuser systemgroup system readproccriticalonrestart restart zygote

init 会解析 init.rc,并启动 /system/bin/servicemanager 这个可执行文件。
因为Zygote、SystemServer 启动后,都会通过 ServiceManager 注册或查询系统服务。所以 ServiceManager 必须在 Zygote启动之前完成启动。

相关文章:

  • 元素 “cas:serviceResponse“ 的前缀 “cas“ 未绑定
  • 更新Java的环境变量后VScode/cursor里面还是之前的环境变量
  • xmind转换为markdown
  • .Net Framework 4/C# System.IO 命名空间(文件的输入输出)
  • GO协程(Goroutine)问题总结(待续)
  • openvino如何在c++中调用pytorch训练的模型
  • [蓝桥杯]摆动序列
  • 深入解析光敏传感技术:嵌入式仿真平台如何重塑电子工程教学
  • Linux驱动:register_chrdev_region、 alloc_chrdev_region
  • 让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
  • Python Day44
  • 智慧园区数字孪生全链交付方案:降本增效30%,多案例实践驱动全周期交付
  • SQL进阶之旅 Day 16:特定数据库引擎高级特性
  • 华为OD最新机试真题-小明减肥-OD统一考试(B卷)
  • 华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)
  • Python训练营---Day44
  • 今日科技热点速览
  • Android协程学习
  • 消息的幂等性
  • RAID磁盘阵列
  • 购物网站代码模板/百度100%秒收录
  • 定安住房和城乡建设局网站/外贸网站大全
  • 免费做企业网站的步骤/seo薪酬水平
  • 做网站是用wordpress还是DW/外链查询工具
  • 企业先做网站还是先做淘宝/九江seo公司
  • wordpress 锚/google优化推广