Android启动(一)系统启动

本文详细阐述了Android系统的启动流程,从按下电源键开始,经过BootLoader加载,Linux内核启动,再到init进程、ServiceManager、Zygote进程和服务的启动,最后到系统Server和Launcher的运行。过程中涉及关键步骤如Binder驱动、类资源预加载和应用程序环境准备等。

整体流程

  1. 按下电源键

  2. 加载BootLoader程序到Ram

  3. 拉起Linux内核

  4. 寻找init.cpp文件(system/core/init/init.cpp)启动init进程

    1. 进行基本文件系统设置
    2. property_init()初始化基础属性服务start_property_service()启动基础属性服务
      • 属性服务用来查询或者设置相应的属性
    3. 解析init.rc文件
      1. **启动ServiceManager **
        • 主要就是打开Binder驱动, 开启循环等待接收client的消息
        • 将自己注册为管理员
        • 后面SystemServer进程中的服务,都会注册到这里,
      2. 通过AppRunTIme.start启动zygote进程
        1. 启动虚拟机
        2. 通过JNI 关联jave层代码
        3. 注册名为zygoteLocalServiceSocket用来接收AMS创建应用的消息
        4. 预加载资源如 类资源 文字资源 opengl
        5. 启动systemServer进程
          1. 启动Binder 线程池
          2. 启动相关服务,installer,ams,pms等
          3. 启动Launcher
        6. 启动while循环让LocalServiceSocket等待接收AMS的消息
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值