🚀 Android 启动全流程
深度解析 · 30章
📚 完整目录 · 点击跳转
🎨 风格 · 明快活力
📱 从按下电源到桌面启动
01
Android系统架构概览
四层架构:Linux内核、HAL、Framework、应用层,职责与交互方式。
02
启动起点:BootROM与Bootloader
芯片上电第一条指令,启动模式选择:正常、恢复、刷机。
03
Bootloader深度解析
LK/U-Boot启动流程,设备树加载,内核启动参数准备。
04
Linux内核启动
内核解压初始化,init进程诞生,内核态到用户态切换。
05
init进程的诞生
PID=1,用户空间第一进程,init.rc解析机制。
06
init.rc脚本语言详解
Action、Service、Trigger、Command,on boot/init区别,class关键字。
07
Zygote进程启动
init启动Zygote,ART创建,预加载系统资源。
08
Zygote Socket监听机制
Unix Domain Socket接收AMS请求,fork与写时复制(COW)。
09
System Server启动
Zygote fork System Server,main入口,服务注册管理。
10
系统服务概览
AMS、WMS、PMS、PowerManagerService等启动顺序与依赖。
11
ActivityManagerService(AMS)
启动时机,四大组件管理,进程优先级与OOM Killer交互。
12
WindowManagerService(WMS)
窗口管理、输入分发、屏幕旋转,与SurfaceFlinger协作。
13
PackageManagerService(PMS)
APK扫描安装,权限管理,Dex2OAT触发时机。
14
SurfaceFlinger与显示系统
初始化,合成策略(GPU/HWC),BufferQueue工作机制。
15
硬件抽象层(HAL)加载
三种加载方式,Treble架构下HIDL/AIDL接口。
16
关键守护进程(Daemons)
servicemanager、logd、lmkd、adbd启动与职责。
17
Binder IPC机制
Binder驱动初始化,ServiceManager,线程池,oneway/同步。
18
系统属性管理
property_service启动,属性读写,persist持久化。
19
SELinux安全策略
SELinux初始化,安全上下文,avc审计日志分析。
20
启动动画(Boot Animation)
bootanimation进程,开机动画播放,自定义方法。
21
Launcher启动
System Server启动Launcher,Home加载,默认桌面设置。
22
开机广播(BOOT_COMPLETED)
广播发送时机,静态/动态注册,开机自启实现。
23
系统启动日志分析
logcat分析启动时序,关键标签,耗时瓶颈定位。
24
启动速度优化
并行启动、按需启动、预编译(PGO),减少冷启动时间。
25
工厂模式与恢复模式
工厂模式流程,Recovery启动与OTA升级,update-binary脚本。
26
安全启动(Verified Boot)
AVB校验流程,vbmeta分区,dm-verity机制。
27
分区表与文件系统
Boot/System/Vendor/Data分区,动态分区(Super)与逻辑卷。
28
内核模块与设备驱动
内核模块加载,驱动与HAL绑定,dmesg解读。
29
启动异常处理
Kernel Panic、init崩溃、Zygote/System Server异常排查。
30
启动流程全景回顾
电源键到桌面全链路时序,各阶段占比,未来演进(Treble/Mainline)。