一文讲透AAOS架构,点到为止不藏私
📌 AAOS是以一个系统APP的方式集成进安卓系统中,通过在SystemServer中启动其中的Service
📚 1. CarServcie 是如何被启动的?
-
AAOS中的核心服务是CarService,其描述如下:
-
代码路径如下:
android11.0/packages/services/Car/service/src/com/android/car/CarService.java
public class CarService extends Service {
}
- 模块代码的位置如下:
🧱 2. 架构总览:从内核到应用的全栈视图
- 架构分层图(推荐附图示意)
- 各层简介:
- Linux Kernel & HAL
- Native Services & HIDL/AIDL
- System Server & CarService
- Application & SystemUI
🚗 3. 核心模块详解(车载专属模块)
3.1 CarService 架构与工作机制
- 入口类、绑定机制
- 和 SystemServer、CarServiceHelper 的关系
3.2 Vehicle HAL 与车载硬件的桥梁
- VHAL 接口说明
- HAL 服务(如ICU、Door、HVAC)通信流程
- 自定义 HAL 扩展方式
3.3 CarPropertyManager 与应用层交互
- 数据如何从 HAL 传到 App?
- 属性定义、订阅机制
🧩 4. AAOS 扩展点:OEM 怎么做自己的定制?
- 如何扩展 CarService
- 如何实现自定义 HAL
- OEM FeatureService 注入机制
- SystemUI 与 OEM 插件
⚙️ 5. 系统启动流程简析(从 u-boot 到 Launcher)
- AAOS 启动全流程概览
- Init、Zygote、SystemServer 启动逻辑
- CarService 与 Vehicle HAL 的启动节点
🧪 6. 实战技巧 & 踩坑经验
- 常见问题定位:CarProperty 不生效、HAL 数据异常
- 如何验证 VHAL 数据?
- 调试技巧:log tag、dump、binder trace
- 工具推荐:VHAL Replay Tool、car_service_test
🧾 7. 总结
- 熟悉架构,是理解系统行为的前提
- AAOS 是深度定制与模块协作的集合体
- 真正吃透,需要理解“链路”、掌握“流程”、熟悉“入口”
“专注AAOS架构与实战,欢迎关注一起探索车载开发。”
下一篇推荐:
👉 AAOS系列之(二)代码结构