📱 从电源到Launcher
全链路 · 30章
📚
Android启动
深度解析
⚡ 30个章节 · 完整目录
🎯 点击卡片跳转对应课程
01
BootROM与硬件初始化
按下电源键,CPU复位向量执行,BootROM加载并校验Bootloader
硬件起点
02
Bootloader第一阶段 (SPL/Preloader)
初始化DDR、时钟、串口最小系统,加载完整Bootloader
最小系统
03
Bootloader第二阶段 (U-Boot)
加载Linux内核与设备树,传递启动参数,进入内核
内核加载
04
Linux内核启动
解压内核、MMU初始化、调度器、中断子系统,挂载根文件系统
内核核心
05
init进程与Zygote孵化
init解析init.rc启动关键服务,Zygote预加载Java框架类
用户空间
06
SystemServer启动
Zygote孵化SystemServer,启动AMS、WMS、PMS等核心服务
服务中枢
07
Launcher启动
SystemServer通知AMS启动Launcher,完成系统启动
桌面呈现
08
启动优化与Bootchart
使用Bootchart分析启动耗时,优化关键路径
性能调优
09
安全启动链
硬件信任根到Verified Boot,确保系统完整性
安全基石
10
常见启动故障与调试
分析logcat、kernel log,解决启动卡死、重启
故障排除
11
深入BootROM
高通、MTK、展锐等SoC的BootROM实现差异
芯片差异
12
AB分区与启动控制
AB系统分区原理,无缝OTA升级
分区策略
13
设备树 (DTB/DTBO) 详解
设备树语法、编译、传递过程
硬件描述
14
内核启动参数
console, androidboot.serialno, selinux等关键参数解析
内核参数
15
init.rc语法与定制
service、on、trigger等关键字,添加自定义服务
启动脚本
16
SELinux策略加载
安全上下文初始化,策略文件编译与加载
强制访问
17
Zygote进程内存管理
预加载类、资源,写时复制(COW)优化
内存优化
18
SystemServer线程模型
Watchdog、Binder线程池、HandlerThread设计
并发架构
19
ActivityManagerService启动流程
进程管理、任务栈、启动模式
AMS核心
20
WindowManagerService启动
窗口层级、输入事件分发、SurfaceFlinger交互
窗口系统
21
PackageManagerService启动
扫描APK、解析AndroidManifest、权限管理
包管理
22
Launcher数据加载
ContentProvider查询、数据库索引、图标缓存策略
桌面数据
23
开机广播与接收器
BOOT_COMPLETED广播发送时机,静态注册限制
广播机制
24
启动动画 (BootAnimation)
开机动画资源加载、渲染流程、自定义动画
视觉反馈
25
低内存设备启动优化
ZRAM、LMK、进程优先级调整
内存优化
26
启动时间测量
使用trace、systrace、perfetto精确测量
性能分析
27
内核模块与驱动加载
init调用insmod加载驱动,设备匹配与probe
驱动加载
28
文件系统挂载
system、vendor、product分区挂载顺序,overlayfs使用
存储布局
29
虚拟化启动 (AVF)
Android Virtualization Framework下的启动流程
虚拟化
30
未来趋势
MinaOS、Rust for Linux、启动时间进一步压缩技术
前沿展望