Android 架构

Refer https://source.android.com/docs/core/architecture?hl=zh-cn
Image

代码框架整理

Linux Kernel 层

大类 子模块 主要功能 代码路径
GKI 与厂商驱动 GKI 核心 通用内核,简化配置,支撑主线生态 kernel/
GKI 与厂商驱动 Vendor 驱动 厂商专用硬件驱动,模块化加载 vendor/ 、 hardware/
GKI 与厂商驱动 KGSL 高通 Adreno GPU 驱动,管理 GPU 资源/功耗/命令 drivers/gpu/msm/kgsl/
Android专有模块 Binder 主 IPC 机制,进程间对象/RPC通信 drivers/android/binder/
Android专有模块 Ashmem 匿名共享内存(高效进程间共享) drivers/staging/android/ashmem.c
Android专有模块 Lowmemorykiller 低内存回收(LMK,内核/用户空间) drivers/staging/android/lowmemorykiller.c / system/memory/lmkd/
Android专有模块 IOCTL 框架 标准 I/O 控制接口 drivers/
Android专有模块 电源管理 CPU 频率调节、wakelock、休眠唤醒 drivers/cpufreq/ , kernel/power/
Android专有模块 SELinux 强制访问控制,保障系统安全 security/selinux/
Android专有模块 Vendor Modules 各类厂商专用硬件驱动 vendor/ 、 hardware/
Android专有模块 RIL 无线通信接口 system/rild/
内存管理 LMK 低内存回收机制(内核/用户空间) drivers/staging/android/lowmemorykiller.c / system/memory/lmkd/
内存管理 ZRAM 压缩内存,提升低端设备内存利用 drivers/staging/zram/
内存管理 Buddy System 物理内存分配与合并 mm/compaction.c
内存管理 Slab/SLUB 分配器 内核对象缓存池式分配 mm/slab.c , mm/slub.c
内存管理 ION 多媒体/SoC物理内存分配与共享 drivers/staging/android/ion/
内存管理 DMA-BUF 跨驱动共享物理内存标准接口 drivers/dma-buf/
文件系统与存储 EXT4 默认文件系统,高性能高可靠 fs/ext4/
文件系统与存储 F2FS 针对 Flash 优化的文件系统 fs/f2fs/
文件系统与存储 加密文件系统 FSCRYPT/LUKS 文件系统加密 fs/crypto/
文件系统与存储 Vold 存储管理守护进程,挂载/卸载/OTG管理 system/core/vold/
文件系统与存储 DM-Verity 只读分区完整性校验,防篡改 drivers/md/
文件系统与存储 Keymaster HAL 密钥管理/安全生成功能 hardware/interfaces/security/keymint/aidl/
网络 TCP/IP 协议栈 IPv4/IPv6/TCP/UDP 网络通信 net/ipv4/ , net/ipv6/
网络 Wi-Fi 驱动 无线网卡、Wi-Fi 管理 drivers/net/wireless/
网络 蓝牙驱动 蓝牙协议栈驱动 drivers/bluetooth/
网络 Netfilter 防火墙/NAT/数据包过滤 net/netfilter/
安全性 SELinux 强制访问控制 security/selinux/
安全性 HSM 硬件安全模块,加密运算加速 drivers/crypto/
安全性 AppArmor(可选) 可选安全沙箱策略 security/apparmor/
中断/硬件管理 中断管理 硬件/软件中断分发和处理 kernel/irq/
中断/硬件管理 GPU 驱动 Adreno/Mali 等 GPU 内核驱动 drivers/gpu/ , drivers/gpu/msm/kgsl/
中断/硬件管理 传感器驱动 各类传感器(加速度计、陀螺仪等) drivers/iio/
中断/硬件管理 输入设备驱动 触摸屏、键盘等输入设备 drivers/input/

Native Libraries 层

类别 名称 主要功能 代码路径
基础库 Bionic libc C 标准库,系统调用、内存分配 bionic/
基础库 libc++ C++ 标准库 external/libcxx/
基础库 libm 数学函数库 bionic/libm/
系统基础 liblog 日志接口 system/core/liblog/
系统基础 libbinder Binder IPC 支持 frameworks/native/libs/binder/
系统基础 libutils 字符串、Mutex、引用计数等工具 system/core/libutils/
系统基础 libandroid Native 和 Java 桥接接口 frameworks/native/libs/android/
系统基础 libnativehelper JNI 辅助库 frameworks/native/libs/nativehelper/
安全 libselinux SELinux 支持库 external/selinux/libselinux/
安全 libcrypto 加密算法库 external/openssl/
安全 libssl SSL/TLS 支持 external/openssl/
算法/压缩 libz 压缩算法库(zlib) external/zlib/
多媒体 libjpeg JPEG 图像解码 external/libjpeg-turbo/
多媒体 libpng PNG 图像解码 external/libpng/
多媒体 libwebp WebP 图像处理 external/libwebp/
多媒体 libskia 2D 图形渲染 external/skia/
图形 libEGL/libGLES OpenGL ES 支持 frameworks/native/opengl/
图形 libvulkan Vulkan 支持 external/vulkan/
摄像头 libcamera 摄像头 HAL 通用库 external/libcamera/
输入 libinput 输入设备支持 system/core/libinput/
多媒体 libstagefright 多媒体编解码 frameworks/av/media/libstagefright/
多媒体 libmediandk 多媒体原生接口 frameworks/av/media/ndk/
序列化 libprotobuf Protocol Buffers 序列化库 external/protobuf/
ART libdexfile DEX 字节码解析与支持 art/libdexfile/
ART libart ART 虚拟机核心库 art/runtime/

Native Deamons 层

类别 名称 主要功能 代码路径
启动/管理 init 系统启动初始化,启动守护进程 system/core/init/
调试 adbd ADB 调试守护进程 system/core/adb/
存储 vold 存储设备管理(挂载、加密、OTG等) system/vold/
网络 netd 网络配置、DNS、防火墙等 system/netd/
日志 logd 系统日志服务 system/core/logd/
管理 servicemanager Binder 服务管理器 frameworks/native/cmds/servicemanager/
应用孵化 zygote 应用进程孵化器,启动 Java 应用 frameworks/base/cmds/zygote/
图形 surfaceflinger 图形合成服务,负责屏幕显示 frameworks/native/services/surfaceflinger/
内存 lmkd Low Memory Killer Daemon 内存回收守护进程 system/memory/lmkd/
无线 rild 无线通信守护进程(Radio Interface Layer) hardware/ril/
电池 healthd 电池和健康状态监控 system/core/healthd/
安全 keystore 密钥/证书安全管理 system/security/keystore/
安装 installd APK 安装、数据目录管理 system/extras/installd/
DRM drmserver 数字版权管理(DRM)服务 frameworks/av/drm/drmserver/
安全 gatekeeperd 屏幕解锁验证(Gatekeeper HAL) system/gatekeeperd/
统计 statsd 统计与遥测收集服务 frameworks/base/cmds/statsd/

HAL(Harware Abstraction Layer) 层

模块 功能描述 代码路径
audio 音频采集、播放、处理和音频硬件控制 hardware/interfaces/audio/aidl/
camera 摄像头操作、采集、拍照、视频录制、参数调节 hardware/interfaces/camera/aidl/
graphics 显示合成(HWC)、图形 buffer 分配、显示刷新 hardware/interfaces/graphics/composer/aidl/
hardware/interfaces/graphics/allocator/aidl/
light 屏幕、键盘、通知 LED 灯光控制 hardware/interfaces/light/aidl/
vibrator 振动器控制(马达驱动、震感反馈) hardware/interfaces/vibrator/aidl/
sensors 各类传感器(加速度、陀螺仪、磁力、环境、计步等) hardware/interfaces/sensors/aidl/
biometrics 指纹、人脸、虹膜等生物识别接口 hardware/interfaces/biometrics/fingerprint/aidl/
hardware/interfaces/biometrics/face/aidl/
bluetooth 蓝牙功能(扫描、配对、音频、BLE等) hardware/interfaces/bluetooth/aidl/
wifi 无线网络(Wi-Fi)配置、扫描、连接、热点 hardware/interfaces/wifi/aidl/
gnss 卫星定位(GPS、GLONASS、北斗、Galileo) hardware/interfaces/gnss/aidl/
radio 无线通信(蜂窝基带,电话、短信、数据、SIM等) hardware/interfaces/radio/aidl/
nfc 近场通信(NFC) hardware/interfaces/nfc/aidl/
usb USB 设备检测、模式切换、充电控制 hardware/interfaces/usb/aidl/
thermal 芯片、CPU/GPU/电池等温度采集与管理 hardware/interfaces/thermal/aidl/
health 电池健康、电量、温度、电池状态采集与上报 hardware/interfaces/health/aidl/
power 电源管理(省电模式、唤醒、休眠、boost等) hardware/interfaces/power/aidl/
keymaster 密钥/加密硬件支持(安全密钥生成、签名、硬件安全区) hardware/interfaces/security/keymint/aidl/
gatekeeper 锁屏密码/生物识别 gatekeeper 认证支持 hardware/interfaces/gatekeeper/aidl/
drm 数字版权管理(DRM),密钥协商、内容保护 hardware/interfaces/drm/aidl/
automotive 车载信息娱乐、CAN 总线、仪表盘等车辆相关控制 hardware/interfaces/automotive/
graphics_mapper GraphicBuffer Mapper,图形内存映射接口 hardware/interfaces/graphics/mapper/aidl/
media 多媒体硬件加速(视频编解码、音频处理、Camera ISP) hardware/interfaces/media/aidl/
configstore 配置信息存取,提供 SoC/HW 相关参数 hardware/interfaces/configstore/aidl/
display 显示输出(Display HAL,屏幕参数、亮度、刷新率等) hardware/interfaces/display/aidl/
input 输入设备(键盘、触控板、手写笔等)管理和事件采集 hardware/interfaces/input/aidl/
boot 设备启动、bootloader 状态、分区切换 hardware/interfaces/boot/aidl/
fastboot fastboot 模式和接口实现 hardware/interfaces/fastboot/aidl/
time 时间管理、RTC、系统时间设置 hardware/interfaces/time/aidl/
secure_element SE(安全芯片,NFC/支付/安全存储等)接口 hardware/interfaces/secure_element/aidl/
identity 身份认证、证件接口(如 eID、国密、护照等) hardware/interfaces/identity/aidl/
oemlock OEM 锁控制(设备解锁、bootloader 锁等) hardware/interfaces/oemlock/aidl/
wifi_offload Wi-Fi 卸载、低功耗扫描等 hardware/interfaces/wifi/offload/aidl/
confirmationui 安全确认 UI 支持 hardware/interfaces/confirmationui/aidl/
soundtrigger 声音唤醒(如“OK Google”热词检测) hardware/interfaces/soundtrigger/aidl/

TV HAL 层

模块 功能描述 代码路径
tv_input 电视输入源(HDMI、ATV、DTV、AV、Component 等)管理 hardware/interfaces/tv/input/aidl/
tv_cec HDMI CEC (Consumer Electronics Control) 控制和事件 hardware/interfaces/tv/cec/aidl/
tv_tuner 电视调谐器(DVB/ATSC/ISDB)支持,频道扫描、播放 hardware/interfaces/tv/tuner/aidl/
tv_audio 电视音频输入、解码、音效处理 hardware/interfaces/tv/audio/aidl/
tv_hdmi HDMI 输入检测与管理,EDID、热插拔、模式切换 hardware/interfaces/tv/hdmi/aidl/
tv_smartcard 电视智能卡(CA 解密、授权、付费电视等)接口 hardware/interfaces/tv/smartcard/aidl/
tv_ci 条件接收(CAM 卡、Conditional Access)管理 hardware/interfaces/tv/ci/aidl/
tv_wakeup TV 唤醒(遥控器、HDMI CEC 唤醒、定时唤醒等) hardware/interfaces/tv/wakeup/aidl/
tv_input_control 电视输入切换、信号状态管理 hardware/interfaces/tv/inputcontrol/aidl/
tv_antenna 天线、信号强度、信号质量检测与控制 hardware/interfaces/tv/antenna/aidl/
tv_overlay TV 画中画(PIP)、OSD、图层叠加控制 hardware/interfaces/tv/overlay/aidl/
tv_dvr 数字录像(DVR,录制电视节目、回放) hardware/interfaces/tv/dvr/aidl/
tv_hbbtv HbbTV(混合广播宽带电视标准)应用与数据接口 hardware/interfaces/tv/hbbtv/aidl/
tv_boot TV 专用开机流程、待机与恢复控制 hardware/interfaces/tv/boot/aidl/
tv_remote 电视遥控器(红外/Bluetooth/语音)事件采集和管理 hardware/interfaces/tv/remote/aidl/
tv_hdmi_arc HDMI ARC(音频回传通道)/eARC 支持 hardware/interfaces/tv/hdmi_arc/aidl/

ART(Android Runtime) 层

模块 功能描述 代码路径
runtime ART 虚拟机主运行时环境,负责类加载、内存管理、线程调度、异常处理、GC、JIT/AOT 执行 art/runtime/
dex2oat DEX 到 OAT(本地代码)的 AOT 编译工具 art/dex2oat/
odrefresh OAT/DEX 优化与刷新的守护与工具,增量重编译与文件一致性检测 art/odrefresh/
oatdump OAT 文件结构、内容及本地代码分析与调试工具 art/oatdump/
dalvikvm Dalvik 兼容入口(历史兼容层,实际调用 ART runtime) art/dalvikvm/
libart ART VM 核心运行时库与平台适配 art/libartbase/
art/libartpalette/
libdexfile DEX 字节码格式解析、操作与校验 art/libdexfile/
libart-compiler ART 编译器核心,字节码到本地代码转换、优化 art/compiler/
libart-disassembler 字节码与本地指令反汇编分析 art/disassembler/
libartbase ART 基础工具、数据结构、日志、调试支持 art/libartbase/
libartpalette 平台适配接口,跨架构/OS 抽象层 art/libartpalette/
gc 垃圾回收(GC)模块,内存回收算法与调优 art/runtime/gc/
jit 即时编译(JIT),运行时热点代码本地化与优化 art/runtime/jit/
interpreter 字节码解释器,DEX 指令动态调度执行 art/runtime/interpreter/
imgdiag Image 文件分析工具(system image 校验与分析) art/imgdiag/
profile 方法/代码块热度分析、profile 数据收集与利用 art/profile/
quick 快速方法调用和内联、调用链优化等 art/runtime/quick/
signal_catcher 信号捕捉与故障转储(crash、ANR、native 信号管理) art/runtime/signal_catcher.cc
monitor 对象锁、同步、Monitor 机制实现 art/runtime/monitor.cc
verifier DEX 字节码静态校验与安全验证 art/runtime/verifier/
debugger Java 调试接口 JDWP/断点/单步执行等 art/runtime/debugger/
trace 方法调用/性能追踪与分析支持 art/runtime/trace/
hidden_api 隐藏 API 管控,防止 App 访问系统私有接口 art/runtime/hidden_api/
hprof Java 堆内存快照与分析工具(heap profiler) art/runtime/hprof/
jdwp Java 调试线协议实现(JDWP) art/runtime/jdwp/
libcore Java 标准库与通用 API 实现(集合、IO、网络、XML、加密、ICU 等),为 ART/Java Framework 提供核心类库支持 libcore/
OAT(.oat 文件) ART 将 DEX 字节码 AOT 编译后的产物,包含本地机器码和元数据,提升启动和执行效率 art/dex2oat/
art/runtime/oat_file.h
art/oatdump/
art/odrefresh/
JNI Java 层与 native(C/C++)代码互操作桥梁,实现方法调用、数据转换、线程/对象管理 art/runtime/jni/
libcore/ojluni/src/main/native/include/jni.h
libnativebridge Native Bridge 机制实现,不同架构下 native so 的兼容仿真加载,跨 ABI 支持 art/libnativebridge/
libnativeloader 动态库加载与命名空间隔离机制,管理 so 加载路径、安全隔离与卸载 art/libnativeloader/

Android Framework层

模块 功能描述 主要代码路径
ActivityManager 应用组件生命周期管理、进程调度、任务栈管理、后台管控 frameworks/base/services/core/java/com/android/server/am/
PackageManager APK 安装/卸载、包管理、权限管理、签名校验、分区 frameworks/base/services/core/java/com/android/server/pm/
WindowManager 窗口/层级管理、窗口动画、输入分发、屏幕适配 frameworks/base/services/core/java/com/android/server/wm/
InputManager 输入事件收集、分发、输入设备(键盘、触控、鼠标、遥控)管理 frameworks/base/services/core/java/com/android/server/input/
frameworks/base/core/java/android/hardware/input/
DisplayManager 屏幕显示设备管理、投屏、分辨率切换、亮度控制 frameworks/base/services/core/java/com/android/server/display/
PowerManager 电源管理、休眠/唤醒、亮度/省电控制、Wakelock frameworks/base/services/core/java/com/android/server/power/
NotificationManager 通知管理、消息推送、渠道与权限控制、锁屏与前台通知 frameworks/base/services/core/java/com/android/server/notification/
frameworks/base/core/java/android/app/NotificationManager.java
AlarmManager 定时任务调度、闹钟服务 frameworks/base/services/core/java/com/android/server/alarm/
ResourceManager 应用与系统资源(布局、图片、字符串、样式、主题)加载与管理 frameworks/base/core/java/android/content/res/
frameworks/base/libs/androidfw/
frameworks/base/services/core/java/com/android/server/
LocationManager 定位服务、位置更新、地理围栏、GPS/网络定位 frameworks/base/services/core/java/com/android/server/location/
ConnectivityManager 网络连接、Wi-Fi/蜂窝/以太网、VPN、代理、网络切换 frameworks/base/services/core/java/com/android/server/connectivity/
TelephonyManager 蜂窝网络、通话、短信、SIM 卡、信号强度 frameworks/opt/telephony/src/java/com/android/internal/telephony/
WifiManager 无线网络连接、Wi-Fi 扫描、热点、状态监听 frameworks/opt/net/wifi/service/java/com/android/server/wifi/
BluetoothManager 蓝牙连接、设备配对、BLE、音频控制 packages/modules/Bluetooth/service/java/com/android/server/bluetooth/
AudioManager 音频策略、音量、输出/输入路由、音效 frameworks/base/services/core/java/com/android/server/audio/
MediaSessionManager 多媒体播放会话、媒体控制、通知交互 frameworks/base/services/core/java/com/android/server/media/
CameraService 摄像头设备管理、拍照、预览、视频采集 frameworks/av/services/camera/libcameraservice/
SensorManager 传感器事件收集、数据融合、传感器策略 frameworks/base/services/core/java/com/android/server/sensor/
JobSchedulerService 后台任务调度、任务约束、Doze/省电兼容 frameworks/base/services/core/java/com/android/server/job/
SystemUI 系统界面(状态栏、导航栏、通知栏、快设面板) frameworks/base/packages/SystemUI/
PermissionManager 权限申请、授权、管理、特殊权限分发 frameworks/base/services/core/java/com/android/server/pm/permission/
ContentProvider 跨应用数据共享、标准化数据访问接口(数据库、文件、网络等) frameworks/base/core/java/android/content/ContentProvider.java
frameworks/base/core/java/android/content/
Views UI 视图系统,所有控件、布局、动画、事件分发基础 frameworks/base/core/java/android/view/
frameworks/base/core/java/android/widget/
ClipboardService 剪贴板数据管理、读写、权限控制 frameworks/base/services/core/java/com/android/server/clipboard/
StorageManager 存储空间管理、分区、OTG 设备、加密、文件系统挂载 frameworks/base/services/core/java/com/android/server/storage/
MountService 存储挂载、卸载、监听、分区管理 frameworks/base/services/core/java/com/android/server/mount/
UsbService USB 设备检测、状态管理、MTP/PTP、权限分发 frameworks/base/services/usb/java/com/android/server/usb/
PrintService 打印设备管理、打印任务、网络打印支持 frameworks/base/services/core/java/com/android/server/print/
DevicePolicyManager 企业设备管理、策略下发、远程锁定/擦除 frameworks/base/services/devicepolicy/java/com/android/server/devicepolicy/
WallpaperManager 壁纸管理、壁纸设置、动态壁纸 frameworks/base/services/core/java/com/android/server/wallpaper/
AccessibilityManager 辅助功能(无障碍)、读屏、放大镜、辅助输入 frameworks/base/services/core/java/com/android/server/accessibility/
BackupManager 数据备份与恢复、云备份接口 frameworks/base/services/core/java/com/android/server/backup/
RestrictionsManager 家长控制、内容限制、应用限制 frameworks/base/services/core/java/com/android/server/restrictions/
TrustManager 信任设备、解锁策略、设备信任级别 frameworks/base/services/core/java/com/android/server/trust/
LockSettingsService 锁屏设置、密码/指纹/面部识别管理 frameworks/base/services/core/java/com/android/server/locksettings/
AppOpsManager 应用操作权限控制、敏感操作监控 frameworks/base/services/core/java/com/android/server/appop/
UsageStatsManager 应用使用统计、前后台检测、屏幕时间、限制策略 frameworks/base/services/usage/java/com/android/server/usage/
ShortcutsManager 快捷方式管理、动态/固定快捷方式接口 frameworks/base/services/core/java/com/android/server/shortcuts/
IncidentManager 故障报告、系统诊断、异常事件收集 frameworks/base/services/core/java/com/android/server/incident/
StatsManager 性能统计、事件分析、系统指标采集 frameworks/base/services/core/java/com/android/server/stats/
PolicyManager 电源/设备/安全策略统一管理接口 frameworks/base/services/core/java/com/android/server/policy/
MediaService 多媒体会话管理、音视频路由、媒体资源分配与权限 frameworks/av/services/mediaresourcemanager/
frameworks/base/services/core/java/com/android/server/media/
MediaCodec 多媒体编解码标准接口,硬件加速编解码适配 frameworks/base/media/java/android/media/MediaCodec.java
frameworks/av/media/libstagefright/
MediaExtractor 多媒体封装格式解析与音视频流提取 frameworks/base/media/java/android/media/MediaExtractor.java
frameworks/av/media/libstagefright/MediaExtractor.cpp
OpenMAX AL 多媒体硬件抽象标准接口,底层音视频硬件访问 frameworks/wilhelm/
frameworks/base/media/jni/