1、应用层(System Apps)
系统内置的应用程序以及非系统级的应用程序都是应用层,负责与用户直接进行交互,通常都是用java语言编写。
2、应用框架层(Java API Framework)
提供应用程序所需的API,java语言编写,提供的组件有:
Activity Manager(活动管理器):管理各个应用程序的生命周期,导航回退功能
Location Manager(位置管理器):提供地理位置和定位功能服务
Package Manager(包管理器):管理所有安装在Android系统的应用程序
Notification Manager(通知管理器):让应用程序在状态栏中自定义提示信息
Resource Manager(资源管理器):提供图片、布局文件、颜色文件等
Telephone Manager(电话管理器):管理所有的移动设备功能
Window Manager(窗口管理器):管理所有开启的窗口程序
ContentProvider(内容提供者):使得不同应用程序之间可以共享数据
VIew System(视图系统):构建应用程序的基本组件
3、系统运行库层(Native)
C/C++程序库
OpenGL ES:3D绘图函数库
Libc:从BSD集成来的标准C系统函数库,专门为基于嵌入式Linux的设备定制
Media Framework:多媒体库,支持多种常用的音频、视频格式录制和回放
SQLite: 轻型的关系型数据引擎
SGL:底层的2D图形渲染引擎
SSL:安全套接层,是一种为网络通讯提供安全以及数据完整性的安全协议
FreeType:可一直的字体引擎,它提供统一的接口来访问多种字体格式文件
Android运行时库
运行时库分为核心库和ART,Android5.0之前是Dalvik虚拟机。Dalvik虚拟机(DVM)专为移动设备定制,允许在有限的内存中同时运行多个实例。DVM为JIT(即时编译器),而ART为AOT(预编译)
4、硬件抽象层(HAL)
硬件抽象层是位于操作系统内核与硬件电路之间的接口层,简单来讲,就是将控制硬件的动作放在了硬件抽象层。
5、Linux内核层(Linux Kernel)
Android的核心系统服务基于LInux内核,在此基础上添加了部分Android专用的驱动。系统的安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于该内核。