Android系统启动流程

Android系统启动流程

1、开机

引导芯片启动
    执行固化在ROM的预设代码
        加载引导程序到RAM
            Bootloader检查RAM,初始化硬件参数等功能

2、硬件参数初始化完成

进入kernel层
    加载硬件设备驱动
        初始化进程管理、内存管理、加载Driver等操作
            启动kthread进程(pid=2)
                kthread是所有内核进程的鼻祖

3、Kernel层加载完毕

硬件设备驱动与HAL层进行交互
    初始化进程管理等操作
        启动init进程
            Native层中

4、init进程(pid=1) init进程是所有进程的鼻祖

启动adbd、logd等用户守护进程
    启动ServiceManager(binder服务管家)等重要服务
        孵化出zygote进程(C++ Framework)

5、Zygote进程

由init进程解析init.rc文件fork生成
加载虚拟机
    启动System Server
        启动、管理整个Java Framework
            ActivityManager
            WindowManager
            PackageManager
            PowerManager等服务

6、zygote启动相关APP进程

Launcher
    Email、SMS等进程

Android系统启动进程关联图

image.png

总结

Android系统启动.png

你可能感兴趣的:(Android系统启动流程)