Android 启动过程

Android 启动过程

简介

安卓启动过程是一个启动计算机以使用它的过程。一个计算机系统可以通过打开电源来启动。当计算机被启动时,它只能读取被称为只读存储器的部分。在启动计算机时,会启动一个小程序,该程序被储存起来,称为固件。它允许访问其他类型的存储器,如主存储器和硬盘。固件用于加载大型程序,并在计算机的主内存中运行。启动管理器在所有设备中运行,无论是移动设备、计算机系统还是其他设备。

安卓系统的启动过程有6个步骤,具体如下

  • 启动ROM
  • BootLoader
  • Kernel
  • Init
  • Zygote和Dalvik VM。
  • System Servers.

Android 启动过程

启动ROM

Boot ROM是在系统启动时,计算机通电后被调用的一个步骤。当系统接通电源时,Boot ROM代码开始执行一组指令,这些指令来自ROM中的一个预定义位置。Boot ROM将BootLoader加载到RAM并开始执行。

BootLoader

BootLoader是一个小程序,在Android操作系统启动前运行。手机制造商将他们的锁和限制放在启动加载器中。Boot Loader包含一个代码,在启动任何操作系统之前执行。引导加载器执行两个步骤,具体如下

  • 在第一阶段,Boot Loader检测设备的外部RAM,并在其中加载一个程序用于第二阶段。

  • 在第二阶段,Boot Loader设置了运行内核所需的内存和网络。

Kernel

安卓操作系统由一个操作系统组成,包括Linux内核和用户空间应用程序和库的集合。内核是操作系统的最底层,它直接与硬件互动,并为用户空间组件提供基本服务。当内核完成系统设置后,它在系统文件中寻找init,并启动根进程或系统的第一个进程。

Init

Init是在Android设备上运行的第一个用户空间进程。它负责启动其他用户空间的进程和服务,并设置设备环境。这个进程会读取/init.rc目录下的配置文件,并启动必要的服务和守护进程。Init是第一个以root权限运行的进程,它负责设置设备的安全策略,挂载文件系统,并设置网络。它还启动Android运行时,负责运行Android框架和应用程序。

Zygote和Dalvik虚拟机

Zygote是一个虚拟机进程,在系统启动时启动。当应用程序进程启动Zygote时,它就会创建Dalvik VM,然后调用Zygotes的主方法,通过dev/zygote接收启动应用程序的请求。一旦应用程序被启动,fork()方法就会被触发,它将创建一个自身的克隆,以在另一个内存空间中复制它。

System Servers

当zygote加载完所有的Java类和资源后,它将启动系统服务器。这个服务器是android系统的一个核心。android_servers本地库由这个系统服务器加载,以提供本地功能的接口。然后,本地init方法将设置调用的本地服务。在服务被创建后,服务器线程将被创建。其余的服务将按照特定的顺序由线程启动。一旦系统服务开始在内存中运行,安卓的启动过程就完成了,这时 “ACTION_BOTT_COMPLETED “动作就会被触发。

总结

在这篇文章中,我们已经了解了什么是Android的启动过程,以及启动过程中包括哪些不同的过程。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程