您的位置:首页 > 移动开发 > Android开发

Android系统启动流程

2012-12-17 17:24 351 查看

Android系统启动流程

(1)系统引导bootloader,上电后,CPU IROM的程序会将bootloader装载到内存执行

源码:bootable/bootoader/

启动模式

    Camera + Power 启动到Fastboot,工厂模式,SD卡烧写模式(USB, 网络)

    Home + Power启动recovery模式

    按Power,正常开机模式

(2)Linux 内核,Bootloader在启动结束时,将CPU执行权交与kernel,Kernel 自解压,初始化内核和所有需要启动的驱动后,启动文件系统的init进程

源码:kernel/

(3)文件系统及init进程,

    建立系统目录并挂载(格式:源 目的 类型)

    初始化控制台

    Log系统初始化

    解析并执行init.rc

        初始化环境变量

        创建挂载点并挂载

        创建一些android需要用到的文件或者目录并设置相应的权限

        启动服务(adbd, console, vold, servicemanager, zygote...)

    监听系统服务(后台程序)

源码:system/core/init/init.c

(4)桌面Launcher/home,Android系统启动的第一个应用,在ActivityManagerService.systemReady()发送消息,通知home启动,为什么Launcher第一个启动:Launcer的AmdroidManifest.xml中intent-filter 定义了<category android:name android.intent.category.HOME>

源码:packages/apps/Launcher/*

(5)屏幕解锁,系统启动后,一般会将系统锁住,此时必须解锁,才可以正常使用设备

源码:frameworks/policies/base/phone/com/android/internal/policy/impl/*lock*
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: