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 编写用户界面。