0%

安卓系统架构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
从 Linux 内核到应用层

引言

Android 不仅仅是一个应用开发平台,它是一个完整的操作系统,基于 Linux 内核,拥有丰富的系统服务和运行环境。理解 Android 系统架构对开发高性能应用、优化系统资源以及调试底层问题非常重要。

1. Android 系统架构概览

Android 系统可以分为 五层结构:

应用层(Applications)
应用框架层(Application Framework)
系统运行库(Libraries & Android Runtime)
硬件抽象层(HAL)
Linux 内核(Linux Kernel)

2. Linux 内核(Linux Kernel)

作用:

驱动管理:管理硬件设备,如摄像头、显示屏、传感器

进程管理:提供多任务调度

内存管理:虚拟内存与物理内存管理

安全与网络:权限控制、网络通信

特点:

Android 使用的通常是 定制化 Linux 内核

提供 Binder IPC 机制,支撑应用层与系统服务通信

3. 硬件抽象层(HAL)

作用:

将硬件接口统一抽象

各种硬件模块通过 HAL 与 Android 框架交互,例如摄像头 HAL、音频 HAL

特点:

每个硬件模块都有对应的 HAL 模块(Camera HAL、GPS HAL 等)

开发者无需直接访问底层驱动,系统调用 HAL 接口即可

4. 系统运行库(Libraries & Android Runtime)

组成:

C/C++ 系统库

如 libc、SurfaceFlinger、OpenGL ES 等

Android Runtime(ART)

Java/Kotlin 应用运行环境

负责将 APK 中的字节码转换为机器码(JIT/AOT 编译)

提供垃圾回收机制和多线程管理

特点:

ART 替代了早期的 Dalvik 虚拟机

运行效率更高,内存管理更智能

5. 应用框架层(Application Framework)

作用:

为应用提供丰富的 API 和系统服务

核心组件:

Activity Manager:管理应用生命周期

Package Manager:应用安装和权限管理

Window Manager:界面窗口管理

Content Providers:应用数据共享

Location Manager:位置服务

Notification Manager:通知服务

特点:

应用通过调用框架 API 获取系统服务

框架层负责调度底层 HAL 和内核资源

6. 应用层(Applications)

作用:

直接运行用户应用,包括系统应用和第三方应用

应用通过 Java/Kotlin + Android SDK 调用框架层功能

特点:

每个应用运行在独立的 进程和虚拟机实例 中

利用 Linux 内核的权限机制进行隔离和安全管理

7. 总结

Android 系统是一套复杂的多层架构,从内核到应用层形成完整生态

开发者理解系统架构可以帮助:

性能优化

系统服务调用理解

调试底层问题

核心概念:内核提供基础,HAL封装硬件,运行库执行应用,框架层提供服务,应用层直接面向用户