📌一、安卓系统架构图

📌二、按驱动功能分类(最常见)
| 分类 | 说明 | 举例 |
|---|---|---|
| 字符设备驱动 | 以字符流方式读写 | 串口(UART)、I2C、SPI、传感器、GPIO 控制等 |
| 块设备驱动 | 支持随机读写、有扇区概念 | eMMC、UFS、SD 卡、NAND、USB 存储 |
| 网络设备驱动 | 提供网络接口 | Wi-Fi、以太网、蜂窝模块(4G/5G)、蓝牙(部分) |
| 显示与图形驱动 | 涉及 framebuffer / DRM / GPU | LCD、HDMI、MIPI、GPU(Mali/Adreno) |
| 音频驱动 | 使用 ALSA 框架 | Codec、I2S、麦克风、扬声器 |
| 输入设备驱动 | 使用 input 子系统 | 触摸屏、按键、鼠标、遥控器 |
| 摄像头驱动 | 使用 V4L2 框架 | CSI/MIPI 摄像头传感器 |
| 电源管理驱动 | 供电控制、PMIC、充电、休眠唤醒 | 电池、PMIC、充电芯片 |
| USB 驱动 | 通用串行总线 | OTG、USB 转串口、USB 网卡 |
| 其他外设驱动 | 各种专用控制模块 | GPS、指纹、NFC、红外、LED、振动马达 |
📌三、按系统层级分类
| 层级 | 内容 | 开发产物 |
|---|---|---|
| 内核层(Kernel Driver) | 驱动核心逻辑,控制硬件寄存器、处理中断、与硬件通信 | .ko 或编进内核的模块 |
| HAL 层(Hardware Abstraction Layer) | 为上层提供标准接口,封装 ioctl/sysfs 等内核接口 | .so 库,如 android.hardware.camera.provider@2.4-service |
| Framework 层(系统服务) | 通过 Binder 与 HAL 通信,管理系统资源 | Java 服务,如 CameraService, AudioFlinger |
| App 层(用户应用) | 通过系统 API 使用硬件 | App 访问 Camera, AudioTrack, BluetoothAdapter 等 |
📌四、按硬件接口类型分类
| 硬件总线 / 接口 | 典型用途 | 举例 |
|---|---|---|
| GPIO | 控制开关信号、LED、复位线等 | 电源控制、指示灯 |
| I2C | 低速配置通信 | 传感器、PMIC |
| SPI | 高速同步通信 | 屏幕、Flash、触摸 |
| UART | 串行通信 | GNSS 模块、4G 模块、调试口 |
| USB | 热插拔总线接口 | 摄像头、网卡、调制解调器 |
| PCIe | 高速外设接口 | Wi-Fi、SSD、AI 模块 |
| MIPI | 移动设备高速接口 | 显示屏(DSI)、摄像头(CSI) |