android 系统架构简介

Android系统采取的是分层的架构,根据官方文档提供的架构图,我们将android的系统架构分成5层,如图:

android 系统架构简介

1.Application Framework (应用框架)

application framework 是应用开发者使用最多的部分,作为一个应用开发者,我们大部分情况下都是在跟它打交道,

当然对于硬件开发者来说,要想更好的编写驱动程序,需要意识到developer api应尽可能地直接映射到硬件抽象层(HAL)接口上。

2.Binder IPC (绑定进程间通信)

绑定进程间通信机制允许应用框架(application framework)直接跨越进程边界去调用android的系统服务代码,也就是说,高级别的framework apis能够跟android的系统服务直接进行交互,当然这一切的通信对于开发者来说都是不可见的,我们只知道它在运行

3. System services (系统服务)

我们平时调用的应用框架的很多api都是通过跟系统服务进行交互来访问底层的硬件的。

这些基于android系统服务都是模块化的,聚焦在组件上,例如窗口管理器(window manager)、搜索服务(search Service)、通知管理器(Notification Manager).

在android系统中包含两组服务,一组是系统服务,例如窗口管理器和通知管理器,

另一组是媒体服务,用来调用播放和录制多媒体。

4. Hardware abstraction layer (HAL 硬件抽象层)

Android的硬件抽像层是能以封闭源码形式提供硬件驱动模块。HAL的目的是为了把Android framework与Linux kernel隔开,让Android不至过度依赖Linux kernel,以达成“内核独立”(kernel independent)的概念,也让Android framework的开发能在不考量驱动程序实作的前提下进行发展。

HAL stub是一种代理人的概念,stub是以*.so档的形式存在。Stub向HAL“提供”操作函数,并由Android runtime向HAL获取stub的操作,再回调这些操作函数。HAL里包含了许多的stub(代理人)。Runtime只要说明“类型”,即module ID,就可以获取操作函数。

android 系统架构简介

5. Linux Kernel (Linux 内核)

android 的底层是基于linux内核的,当然在在这个版本中新增了诸如wake locks,binder ipc driver以及其他一些对于移动嵌入式平台很重要的一些功能

上一篇:解决python2安装MySQL-python模块报错


下一篇:最短路径问题---Dijkstra算法详解