Android 系统架构包含以下组件:
应用框架
应用框架最常被应用开发者使用。如果您是硬件开发者,则应该了解开发者 API,因为很多此类 API 都会直接映射到底层 HAL 接口,并可提供与实现驱动程序相关的实用信息
Binder IPC
Binder 进程间通信 (IPC) 机制允许应用框架跨越进程边界并调用 Android 系统服务代码,从而使得高级框架 API 能与 Android 系统服务进行交互。在应用框架级别,开发者无法看到此类通信的过程,但一切都会“按部就班地运行”
系统服务
系统服务是专注于特定功能的模块化组件,例如窗口管理器、搜索服务或通知管理器。应用框架 API 所提供的功能可与系统服务通信,以访问底层硬件。Android 包含两组服务:“系统”(诸如窗口管理器和通知管理器之类的服务)和“媒体”(与播放和录制媒体相关的服务)。
硬件抽象层 (HAL)
硬件抽象层 (HAL) 会定义一个标准接口来供硬件供应商实现,从而能让 Android 忽略较低级别的驱动程序实现。借助 HAL,您可以顺利实现相关功能,而不会影响或更改更高级别的系统。HAL 实现会被封装成模块,并会由 Android 系统适时地加载。有关详情,请参阅硬件抽象层 (HAL) 一文。
Linux 内核
开发设备驱动程序与开发典型的 Linux 设备驱动程序类似。Android 使用的 Linux 内核版本包含几个特殊的补充功能,例如:Low Memory Killer(一种内存管理系统,可更主动地保留内存)、唤醒锁定(一种 PowerManager 系统服务)、Binder IPC 驱动程序以及对移动嵌入式平台来说非常重要的其他功能。这些补充功能主要用于增强系统功能,不会影响驱动程序开发。
您可以使用任意版本的内核,只要它支持所需功能(如 Binder 驱动程序)即可。不过,我们建议您使用 Android 内核的最新版本。有关详情,请参阅编译内核一文。
1. OS -底层操作系统 -andriod 使用linux内核作为操作系统。Android对
操作系统的使用包括核心和驱动程序。主要驱动
(1) Display driver
(2) flash memory driver
(3)camera driver
(4 ) audio driver
(5) WIFI driver
(6) keyboard driver
(7)bluetooth driver
(8)Binder IPC driver
(9) power management
2. 各种库(libs)和andriod runtime
(1)C库
(2)多媒体框架,
(3) SGL-2D
(4)SSL(secure socket layer)
(5)openGL ES(3D)
(6)webkit
(7)Freetype
3.应用程序架构(application framework)
提供各种应用程序接口APIS 为应用层提供各种控件。如views ,list ,grid ,textbox,botton ,web等。
4.顶层应用层(APPlication)
JAVA 编写用户界面。