参考文章:
平台架构
Android的前世今生
Android 系统架构和应用组件那些事
iOS基于Unix安卓基于Linux 有关系统内核的小知识
从软件分层的角度看,Android平台由应用程序、应用程序框架、Android运行时、系统库,以及Linux内核构成,如下如
一、Android应用框架层
该框架是进行Android开发的基础,开发人员的大部分时间也是在这一层进行的。
应用程序框架的各个部分具体功能如下所列:
- Activity Manager:活动管理器。管理所有的应用程序生命周期,以及通常的导航返回栈。
- Location Manager:位置管理器。用来提供位置服务。
- Package Manager:包管理器。用来进行Android系统内的程序管理。
- Notification Manager:通知管理器。使应用程序可以再状态栏应用程序中显示通知信息。
- Resource Manager:资源管理器。提供各种资源让应用程序去使用。
- Telephony Manager:电话管理器。用来管理所有的移动设备的功能。
- Window Manager:窗口管理器。管理所有的窗口程序。
- Content Provider:内容提供者。用来让应用程序之间互相存取/分享数据。
- View Systerm:视图系统。用来构建应用程序的基本组件。
二、Android Runtime及原生 C/C++ 库
Android Runtime包含两个部分:
- ART:参考 ART
- 核心库:可提供 Java API 框架使用的 Java 编程语言大部分功能。
原生 C/C++ 库
- Webkit:这是一套网页浏览器的软件引擎。
- Libc:提供了一套C库。
- Media Framework:媒体框架。提供了各种音频、视频的支持。
- OpenGL ES:3D绘图函数库。
- SQLite:轻量级的数据库引擎,支持关系数据库的事务等。
三、硬件抽象层 (HAL)
提供音频、蓝牙、相机、传感器等设备硬件功能。
四、Linux 内核
Android平台中的操作系统采用了Linux内核,它包括显示驱动、摄像头驱动、Binder(IPC)驱动、键盘驱动、蓝牙驱动、相机驱动等等以及电源驱动管理。
Linux 内核层是软件与硬件之间的桥梁,我等码农不需要关心内核的底层实现,底层的工作都会由 Google 和手机开发商来完成,如驱动的更新、新硬件驱动的编写等。