Android启动概览

一、启动流程

Android设备的启动流程大致可以分为以下几个阶段:

1.上电引导程序(Bootloader)

            

  • 当按下设备的电源按钮或设备正在重新启动时,处理器开始运行。
  • 引导加载程序(Bootloader)被加载并执行,它位于设备的只读存储器(如闪存)中。
  • Bootloader的主要任务是初始化硬件设备、设置启动参数,并根据这些参数引导Linux内核启动。

2.linux内核启动

        

  • Linux内核被加载到内存中并开始执行。
  • 内核进行初始化操作,包括设置缓存、保护存储器、调度列表,以及加载各种驱动。
  • 完成系统设置后,内核会搜索并执行init.rc文件,启动init进程。

3.init进程启动

        

  • init进程是Android系统启动时的第一个用户空间进程(pid=1)。
  • 它负责完成系统的初始化工作,包括创建和挂载启动所需的文件目录、初始化和启动属性服务、启动系统服务等。
  • init进程会解析init.rc配置文件,该文件描述了系统在启动时需要进行的各种操作。

4.Zygote进程孵化

        

  • init进程会启动Zygote进程。Zygote进程是Android系统中的一个重要进程,它是所有应用程序的起点。
  • Zygote进程会创建Java虚拟机并为其注册JNI方法,创建服务器端Socket以便接收请求,并启动SystemServer进程。

5.SystemService进程启动

  • SystemServer进程负责启动并管理系统的各项核心服务,如ActivityManagerService、PackageManagerService、WindowManagerService等。
  • 这些服务为Android系统提供了关键的功能支持。

6.Launcher启动

        

  • SystemServer进程启动后会启动ActivityManagerService(AMS),并由AMS启动Launcher。
  • Launcher负责将已安装的应用程序的快捷图标显示到用户界面上,使用户可以轻松访问和启动应用程序。
二、关键组件及其作用

init进程:

第一个用户空间进程,负责系统的初始化工作。
创建和挂载启动所需的文件目录。
初始化和启动属性服务。
启动系统服务,如Zygote进程。
Zygote进程:

应用程序的孵化器,负责创建和启动所有新的应用程序进程。
创建Java虚拟机并为其注册JNI方法。
加载并预加载常用的类和资源,以加速应用程序的启动。
SystemServer进程:

负责启动并管理系统的各项核心服务。
提供应用程序管理、包管理、窗口管理等关键功能。
Launcher:

用户界面的入口点,显示已安装的应用程序的快捷图标。
允许用户轻松访问和启动应用程序。
                        

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值