Android 系统架构分为五层
从上到下依次为应用层、应用框架层、系统运行库层、硬件抽象层与Linux
内核层。
应用层:系统内置的应用程序与非系统的应用程序,负责与用户的直接交互。通常开发人员就处于该层。
应用框架层:提供应用程序开发的各种API
进行快速开发,并且隐藏在每个应用后面的是一系列的服务和系统,比如:
Activity Manager
管理各个程序的生命周期,以及常用的导航回退功能Location Manager
提供地理位置及定位服务Package Manager
管理所有安装在Android系统的应用程序Notification Manager
使应用程序可以在状态栏中自定义提示信息Resource Manager
提供应用程序各种非代码资源,如本地化字符串 图片等Telephone Manager
管理所有的移动设备功能Window Manager
管理所有开启的窗口程序Content Provider
使得不同的应用程序之间可以共享数据,一个应用程序可以访问另一个应用程序View System
(视图系统) 构建应用程序的基本组件, 它包括列表(lists
),网格(grids
),文本框(text boxes
),按钮(buttons
), 甚至可嵌入的web浏览器。C/C++
程序库,被Android中不同的组件使用,并通过应用程序为开发者提供服务Android
运行库及Android 运行环境 ,运行时库又被非为核心库与ART虚拟机, ART 系统在安装应用时会进行一次预编译,将字节码预先转换成机器码,并储存在本地,就无需每次运行时执行编译,提高了运行效率 PacketVideo OpenCOR
E;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG
。Surface Manager
- 对显示子系统的管理,并且为多个应用程序提 供了2D
和3D
图层的无缝融合。这部分代码Webkit,LibWebCore
- 一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。 Apple Safari
背后的引擎就是WebkitSG
L - 底层的2D
图形引擎SQLite
- 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化,保证硬件厂商的知识产权,隐藏特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台进行移植。
Android
核心服务基于Linux
内核,在此基础上,添加了部分Android专用的驱动。
系统安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖与该内核。