谈一谈Android的体系架构

2023-01-06  本文已影响0人  安安_660c

本文讲述的Android系统体系架构,是指应用层之下的整个系统内部的架构层级关系。而并非常说的4层架构:应用层,framework,运行库与环境,Linux内核,而是把系统内部的流程调用划分更加详细。

一、架构

Android系统体系架构图:

android architecture

Android系统体系架构分为5层,自顶而下分别是:


1.1 应用程序框架(Application Framework)

应用框架,对于App开发者使用最为频繁。而硬件开发者,只需要认识到这些APIs是HAL层接口的映射就可以了。

1.2 进程通信层(Binder IPC)

Binder Inter-Process Communication(IPC),进程间通信机制允许framework来跨进程边界,来调用Android的系统服务的代码,这使得框架API与Android系统服务能够进行交互。对于开发者来说,这种通信机制是隐藏的。

1.3 系统服务层(Android System Services)

功能是通过framework APIs与系统服务通信,以实现底层硬件的访问。服务是模块化的,主要部件如Window Manager, Search Service,或者Notification Manager.Android包括两类服务:系统服务(如Window Manager,Notification Manager)和媒体服务(包括播放和录制的媒体服务)。

1.4 硬件抽象层(HAL)

硬件抽象层(HAL)定义了一个标准接口用于硬件厂商的实现. HAL允许功能实现,而不会影响或修改上层的系统。HAL的实现被打包成模块(.so)文件,并在适当的时候被加载进Android系统。

HAL components

硬件抽象层组件

1.5 Linux内核(Linux Kernel)

开发设备驱动程序类似于开发一个典型的Linux设备驱动程序。Android使用Linux内核,再加上一些特殊的特性,如wake locks, Binder IPC驱动,以及用于移动嵌入式平台重要的其他功能。这些增加主要用于系统功能,而不会影响驱动程序的开发。


二、实战

对于Android的体系结构,通过上面的讲解,还是比较抽象,下面将通过具体的一个模块Audio来举例说明。先展示一张Audio的体系结构图:

Audio architecture

三、小结

通过对Android体系的从上层到底层的一个梳理过程,希望能对andorid源码有完整的认识,对模块调用有一个较清晰的体会。

本文转自 http://gityuan.com/2015/08/01/android-arvchitecture/,如有侵权,请联系删除。

上一篇 下一篇

猜你喜欢

热点阅读