🚗 车载Android系统服务定制实战
📘 30章 · 从入门到实车
📚 完整目录 · 点击卡片跳转章节
30
个实战章节
⚙️ AOSP · 系统服务 · 车载定制
01
车载系统概述
Android Automotive简介
系统架构分层
与手机Android区别
车载服务生态概览
02
AOSP源码下载与编译
环境准备(Ubuntu)
Repo工具使用
源码下载策略
编译目标选择(lunch)
首次编译避坑
03
系统服务框架解析
SystemServer进程
ServiceManager核心
服务注册与获取
Binder机制回顾
04
AIDL接口定义语言
AIDL语法详解
定向Tag(in/out/inout)
复杂类型传递
AIDL编译流程
05
创建第一个系统服务
Service类编写
注册到SystemServer
声明服务权限
getService获取服务
06
服务接口设计与演进
接口版本管理
回调接口实现
异步处理模式
RemoteCallbackList
07
系统服务权限控制
Android权限模型
自定义权限声明
checkCallingPermission
UID/PID校验
08
服务端与客户端通信
Binder线程池管理
同步与异步调用
oneway关键字
死锁预防
09
系统服务生命周期管理
服务启动顺序
onStart/onBootPhase
异常重启机制
Watchdog监控
10
车载特有服务——车辆属性服务
Vehicle HAL介绍
VehicleProperty定义
属性订阅与上报
VHAL与Service交互
11
车载特有服务——音频焦点管理
CarAudioService架构
音频焦点策略
多音区管理
动态路由策略
12
车载特有服务——CarInputService
物理按键映射
方向盘按键处理
旋钮事件分发
自定义按键注入
13
系统服务调试技巧
logcat日志规范
systrace分析Binder
dumpsys命令扩展
服务dump自定义数据
14
系统服务单元测试
JUnit4测试框架
Mockito模拟Binder
ServiceTestCase
测试覆盖率要求
15
系统服务性能优化
Binder调用频次控制
内存泄漏检测(LeakCanary)
线程模型优化
异步任务
16
系统服务稳定性保障
空指针防御
异常捕获策略
关键路径超时处理
服务降级方案
17
系统服务升级与兼容
API版本注解
@SystemApi与@hide
兼容性测试套件(CTS)
向后兼容策略
18
多用户场景下的服务
UserHandle概念
多用户服务隔离
跨用户通信
配置文件分区
19
系统服务与SettingsProvider
Settings.System/Global/Secure
自定义Setting项
监听Setting变化
20
系统服务与ContentProvider
跨进程数据共享
CursorWindow限制
Binder事务大小限制
大数据传输方案
21
系统服务与广播接收
动态注册广播
有序广播与粘性广播
广播超时限制
LocalBroadcastManager
22
系统服务与前台服务
前台服务通知要求
startForeground/stop
服务优先级调整
ANR预防
23
系统服务与JobScheduler
延迟任务调度
网络条件约束
空闲时段执行
批量任务合并
24
系统服务与PowerManager
WakeLock使用规范
电源管理策略
Doze模式适配
省电模式服务行为
25
系统服务与PackageManager
查询已安装应用
监听应用安装卸载
包权限管理
隐藏API调用
26
系统服务与WindowManager
窗口层级管理
悬浮窗权限
输入事件拦截
多窗口模式适配
27
系统服务与CarProjection
手机投屏服务
投影会话管理
音频视频同步
反向控制实现
28
系统服务安全加固
SELinux策略编写
Treble架构服务拆分
SELinux权限审计
服务降权运行
29
实战项目一:车载驾驶模式服务
需求分析
接口定义
状态机设计
HAL层交互
实车验证
30
实战项目二:车载用户情景服务
情景感知框架
传感器数据融合
规则引擎设计
服务自检与恢复