Android开机启动之整体分析
一、Android系统整体架构图
Android是谷歌开发的一款基于Linux的开源操作系统
PowerManagement:系统最底层是电源管理,只有通过电源上电,系统才能开启
Linux kernel:驱动层,里面包括Audio、Carmera、usb等各种外设的驱动程序。
HAL层:硬件抽象层 ,HAL 是一个抽象层,具有供硬件供应商实现的标准接口。
硬件抽象层(HAL) 提供标准界面,向更高级别的Java API 框架显示设备硬件功能。HAL 包含多个库模块,其中每个模块都为特定类型的硬件组件实现一个界面,例如相机或蓝牙模块。当框架API 要求访问设备硬件时,Android 系统将为该硬件组件加载库模块。
Android Runtime:(ART)AOSP提供的Java运行环境。 ART 将应用程序的字节码转换为特定于处理器的指令,这些指令由设备的运行时环境执行。
对于运行Android 5.0(API 级别21)或更高版本的设备,每个应用都在其自己的进程中运行,并且有其自己的Android Runtime (ART) 实例。ART 编写为通过执行DEX 文件在低内存设备上运行多个虚拟机,DEX 文件是一种专为Android 设计的字节码格式,经过优化,使用的内存很少。编译工具链(例如Jack)将Java 源代码编译为DE