概述
Android系统架构如下图:
从上往下一共是四层:
应用程序层、应用程序框架层、函数库与Android运行时层、Linux内核层。
下面分别介绍各层:
分层介绍
应用程序层
包含系列的Android核心应用程序,大部分的Android应用也属于这一层,如日历、闹钟、浏览器等。这一层属于用户。
应用程序框架层
这一层就是普通开发者需掌握的层,我们使用框架里的各个模块来开发应用,这些模块和各种服务都可以复用。理解了这一层,开发者就能更快更好的开发应用。下面介绍一下各个模块:
序号 | 模块名 | 用途 |
---|---|---|
1 | Activity Manager(活动管理器) | 管理应用程序生命周期并提供常用的导航回退功能 |
2 | Window Manager(窗口管理) | 整个Android的窗口机制都基于WindowManager,这个接口可以添加view到屏幕,也可以从屏幕删除view |
3 | Content Providers(内容提供者) | 使得应用程序可以访问另一个应用程序的数据,或共享它们自己的数据 |
4 | View System(视图管理) | 用来创建应用程序的视图,即各种UI组件 |
5 | Notification Manager(通知管理器) | 使得应用程序可以在状态栏中显示客户通知信息 |
6 | Package Manager(包管理器) | 管理应用程序包,通过它可以获得应用程序的信息 |
7 | Telephony Manager(电话管理器) | 提供了一系列用于访问与手机通讯相关的状态和信息的get方法。其中包括手机SIM的状态和信息、电信网络的状态及手机用户的信息。 |
8 | Resource Manager(资源管理器) | 图片资源,界面xml资源、字体、颜色等资源都由资源管理器统一管理 |
9 | Location Manager | 管理地图服务的相关功能 |
10 | XMPP Services | 可扩展消息与表示协议服务,这是一个基于XML的通信协议 |
函数库与Android运行时层
这一层已涉及底层,一般的Android应用不会涉及此层。此层包括函数库和Android运行环境:
Libraries
序号 | 模块名 | 功能 |
---|---|---|
1 | Surface Manager | 对显示子系统的管理,并且为应用提供2D,3D图层的无缝融合 |
2 | Media Framework(媒体库) | 基于PackeVideo OpenCore,该库支持多种常用的音频,视频格式以及回放和录制,同时支持静态图像文件。编码格式包括:MPEG4、H.264,MP3、AAC、AMR、JPG、PNG |
3 | SQLite | 对所有应用程序可用,功能强大的轻量级关系型数据库引擎 |
4 | OpenGL ES | 基于OpenGL ES 1.0 APIs实现,该库可以使用硬件3D加速或者使用高度优化的3D软加速 |
5 | FreeType | 位图(bitmap)和向量(vector)字图显示支持 |
6 | WebKit | 最新的web浏览器引擎,用来支持Andiroid浏览器或者嵌入的web视图 |
7 | SGL | 底层的2D图形引擎 |
8 | SSL | Secure Sockets Layer 安全套接层,为网络通信提供安全及数据完整性的一种安全协议 |
9 | libc(系统C库) | 一个从BSD集成来的标准C系统函数库(libc)它是专门为基于嵌入式Linux的设备定制的 |
Android Runtime
序号 | 模块名 | 功能 |
---|---|---|
1 | Core Libraries | 该核心库提供了Java编程语言核心库的大多数功能 |
2 | 10.Dalvik VM | android平台的一个虚拟机,它相当于PC中Java的虚拟机JVM |
Linux内核层
此层为Android系统所依赖的Linux内核,内核提供的功能如下:
- 安全性(Security)
- 内存管理(Memory Management)
- 进程管理(Process Management)
- 网络堆栈(Network Stack)
- 驱动程序模型(Driver Model)包含以下这些常规的驱动程序:
- Display Driver
- Keypad Driver
- Camera Driver
- WiFi Driver
- Flash Memory Driver
- Audio Driver
- Binder(IPC)Driver
- Power Management
- Bluetooth Driver
- USB Driver
时间: 2024-10-17 12:33:24