定期分享,彼此同行。


今天为啥要讲《安卓系统从顶层到底层硬核讲解:APP、Framework、HAL、Linux内核》这个话题,一方面是因为之前我讲过一篇 SoC冷启动过程硬核讲解:从电源键按下到PMIC上电到Kernel全过程 阅读量有约5000的阅读量,大家还比较感兴趣,如有兴趣可以自行查看,今天我再讲讲安卓不同层的作用,这样也算是把整个系统都讲全了。另一方面为在我过往的经历里面会遇到一些问题的分析、算法的评估、性能的提升等等会和不同领域的人沟通有驱动的、框架的、算法的、应用的、硬件的等等经常有听不懂的术语、沟通不在一个频道,很少有人从上到下都了解,哪些层可以跑哪些算法核心作用是啥,所以基于此我想把整体的讲讲,那么你想成为可以把各个领域串起来的那个人吗?如果想成为那个人,就听我来详细讲讲:Android 系统四层架构:App 应用层 → Framework 框架层 → HAL 硬件抽象层 → Linux Kernel 内核层。
运行内容
第三方 App、系统 App(设置、桌面、电话、相机 App 等)
UI 渲染、用户交互、业务逻辑
核心作用
向系统发起功能请求(拍照、录音、存储、网络等)
完全不涉及硬件操作,不访问驱动
本层算法 / 功能
App 内置的纯软件算法:App 内 OCR、滤镜、美颜、翻译
应用自带的端侧 AI 推理(不依赖系统 NPU 服务)
包含:Java Framework + Native Framework(C++)
核心组件
Java:ActivityManager、PackageManager、CameraManager、AudioManager
Native:SurfaceFlinger、AudioFlinger、libcamera-client
核心作用
为 App 提供统一 API
权限管理、进程管理、窗口管理
策略决策:音频路由、音量策略、显示模式、相机调用策略
负责数据流通道管理
不做任何信号处理、图像算法、音频算法
本层算法 / 功能
只有策略,没有算法
不做 HDR、3A、AEC、降噪、美颜、OCR 等任何计算类逻辑
核心作用
承上:接收 Framework 请求
启下:访问 Kernel 驱动
厂商核心算法、私有 IP、硬件配置逻辑的唯一合法载体
隔离 Kernel GPL 协议,保护厂商技术
运行内容Camera HAL、Audio HAL、Sensors HAL、Display HAL、NPU HAL、Charging HAL 等
本层算法
3A(AE/AF/AWB)算法
HDR、多帧合成、夜景、长曝光
EIS 电子防抖、畸变校正、降噪、锐化
ISP 控制、肤色优化、去雾
AEC 回声消除、ENC 上行降噪
ANC 主动降噪、AGC 自动增益
EQ、动态响度、音效处理
DC 调光、护眼算法、色温校准
Gamma 校正、动态对比度、局部调光
系统级 OCR、人脸解锁、姿态检测
NPU 模型调度、AI 加速执行
计步、抬手亮屏、防误触、姿态融合
充电策略、快充协议状态机、温控策略
核心作用
最底层,直接操作硬件寄存器
提供:时钟、电源、中断、DMA、I2C/SPI/SPMI/CSI/DSI 等
实现各类设备驱动
向上提供 /dev/xxx 设备节点
运行内容
Camera Sensor 驱动、Audio Codec 驱动、Touch 驱动、PMIC 驱动、UFS/DDR 驱动等
内核子系统:进程、内存、网络、电源管理
本层只做这些无算法
硬件时序、寄存器配置
数据搬移(DMA)
物理接口驱动(CSI/DSI/PCM)
触控原始数据简单滤波
PMIC 电源配置、快充硬件协议
备注:Kernel 绝对不运行任何 HDR、3A、AEC、ANC、美颜、OCR、图像 / 音频增强类算法。
App ↔ Framework通信方式:Binder IPC
Framework ↔ HAL通信方式:HIDL(Android 8–12)/ AIDL HAL(Android 12+)
HAL ↔ Kernel通信方式:HAL 与内核之间不直接调用,而是通过 /dev/设备节点进行交互,常用 ioctl、mmap、read、write、poll 完成指令与数据传输。
最后还是留几个小问题给大家思考:
1、App 能否直接调用 Kernel 驱动?
2、Framework 层是否运行图像 / 音频算法?
3、相机 3A(AE/AF/AWB)运行在哪一层?
4、音频 AEC 回声消除、ENC 降噪在哪一层?
5、Linux Kernel 是否运行 HDR 或夜景算法?
6、系统级 OCR 由 NPU 加速,推理在哪一层?
7、DC 调光、护眼算法在哪一层?
8、HAL 存在的核心目的?
9、触控原始数据来自哪一层?
10、传感器计步、防误触算法在哪?
11、PMIC 寄存器与快充硬件控制在哪?
12、厂商闭源定制最多的层?
13、Android 分成多层APP、Framework、HAL、Linux内核 核心目的是啥?
BUCK控制架构(电压/电流模式/COT/ACOT)+调制方式(PWM/PFM/PSM)+ 电感模式(CCM/BCM/DCM)+环路稳定性(相位裕度/增益裕度/穿越频率)全攻略
SoC 内部通信架构硬核之路:APB → AHB → AXI4 → ACE → CHI 全攻略
SoC拍照全链路架构硬核讲解:Sensor/MIPI_PHY/DCAM/ISP/JPG/VDSP/DDR/AXI全攻略