Android 概述
Android 系统架构包含以下组件:
-
应用框架
就是所谓的 Android APP层,提供了一系列的 API 供上层开发者使用。
-
Binder IPC
此机制实现了 Android上层进程 与 Android系统服务进程(framework)之间的通信,应用层开发者无法窥探此通信过程。
-
系统服务
专注于特定功能的模块化组件(窗口化管理,搜索服务,通知管理器,播放和录制等媒体服务),负责贯穿上层和下层,将上层的逻辑具体化并移交给下层驱动,这个过程涉及到了大量的优化思想和解耦设计,这就是所谓的 framework 层,是 AOSP 最核心的部分,也是Android框架的灵魂所在。
-
硬件抽象层(HAL)
HAL 可以定义一个标准接口以供硬件供应商实现,向更高级别的 Java API框架显示设备功能。HAL 包含多个库模块,其中每个模块都为特定类型的硬件组实现以供界面,列如 相机 或 蓝牙 模块。当框架API要求访问设备硬件时,Android 系统将为该硬件组加载库模块。 借助 HAL 实现相关功能,而不会影响或更改更高级别的系统。(作为解耦)
-
Linux 内核(kernel)
Android 本身就是一种基于 Linux 的开放源代码软件栈,Android 平台的基础是 Linux 内核。
例如,Android Runtime (ART)依靠Linux内核来执行底层功能,例如线程的底层内存管理等。