座舱车门知识库
基于 MiCarSettings 仓库(
com.android.car.settings)+ JIRA MANNPROB-1838/1839 现场实战梳理 建库日期:2026-07-07 | 分支:dev
知识库范围
围绕座舱车门的一切:车门开关、门锁、尾门/前备箱、童锁、车窗锁、充电口盖/加油口盖、靠近解锁/离车锁、开门预警(DOW),以及「离车提醒弹窗」这个把车门状态可视化展示的关键场景。
一个重要的边界(必读)
车门相关的代码分布在两个模块,分清谁是谁是理解 JIRA 的前提:
| 模块 | 包名 | 进程 | 本仓库有源码? | 角色 |
|---|---|---|---|---|
| MiCarSettings | com.android.car.settings | car.settings | ✅ 全部 | 车门设置页(用户主动操作车门)+ 离车提醒弹窗 DoorUnLockActivity |
| SceneService | com.micar.scene | com.micar.scene (uid 10053) | ❌ aar 无源码 | 信号触发器 UnlockDoorTrigger,监听车端信号拉起弹窗 |
JIRA 1838/1839 的现场:bugreport 显示弹窗由
com.micar.scene进程触发,但DoorUnLockActivity的源码在本仓库(micarLockSettings/.../activity/DoorUnLockActivity.java,173 行),JIRA 报告引用的行号与本仓库 1:1 对应。UnlockDoorTrigger(拉起弹窗的上游)在 scene aar,无源码。
文档导航
| 文档 | 内容 |
|---|---|
| 01-车门业务代码全景.md | 门相关 Controller / Fragment / 信号定义入口 / 联动逻辑(代码地图) |
| 02-车门信号与属性定义.md | Door.STATE / LockFltRemdForAlive / 电动门状态等 propId 映射表 |
| 03-门开关业务流程图.md | 设置页主动开门 + 离车提醒弹窗两条主线的完整流程图 |
| 04-MANNPROB-1838-根因-弹窗弹两次.md | 离车提醒重复弹出(车端 3 次 v=1 + App 无 cooldown) |
| 05-MANNPROB-1839-根因-车门闪烁全开.md | 首帧 XML 默认全开 + onCreate 不预读 Door.STATE |
| 06-调试与mock复现指南.md | AIDL/HIDL mock 注入命令、平台差异、日志关键字 |
核心结论速记
- 车门设置页主力模块:
settingsPage/micarLockSettings/,几乎所有门相关 Controller 都在这里。 - 车门状态信号:
Door.STATE(propId0x66403101,DOOR area,6 个区域:左前/右前/左后/右后/引擎盖/尾门)。 - 离车锁车失败信号:
Door.DOOR_NOT_CLOSED_LOCK_FAILED(propId0x61403156,GLOBAL,1=LOCK_FAIL / 2=CANCEL),只读(access=READ),App 不能下发。 - 电动门是状态机:
Door.POWER_OPERATED_DOOR_MOVING_STATUS有 6 态(CLOSED/OPENING/CLOSING/FULL_OPEN/STOP_NEXT_OPEN/STOP_NEXT_CLOSE),不是简单开/关。 - 两个 JIRA 同源:1838(弹两次)和 1839(车门闪烁)都发生在
DoorUnLockActivity首帧初始化阶段,建议合修「弹窗首帧数据未就绪前不渲染内容」。 - 底层基础设施:所有车门读写都经过
SettingsCarPropertyManager,见../SettingsCarPropertyManager源码解析/。
关键源码索引
| 类 | 路径 |
|---|---|
| 离车提醒弹窗 | settingsPage/micarLockSettings/.../activity/DoorUnLockActivity.java |
| 车门开关控制 | settingsPage/micarLockSettings/.../vehicle/VehicleDoorToggleCtrlPreferenceController.java |
| 童锁/车窗锁 | settingsPage/micarLockSettings/.../vehicle/VehicleLockToggleCtrlPreferenceController.java |
| 电动尾门 | settingsPage/micarLockSettings/.../gate/ElectricTailGatePreferenceController.kt |
| 电动前备箱 | settingsPage/micarLockSettings/.../gate/ElectricHeadGatePreferenceController.kt |
| 锁车设置页 | settingsPage/micarLockSettings/.../vehicle/VehicleLockSettingsFragment.java |
| 门信号集合 | settingsPage/micarLockSettings/.../DoorVehiclePropertysMap.java |
| 锁信号集合 | settingsPage/micarLockSettings/.../LockVehiclePropertysMap.java |
| 全量 propId 定义 | base/settingsBaseLib/.../vehicle/MiCarPropertyIds.java |
| 信号读写入口 | base/settingsVehicleLib/.../vehicle/SettingsCarPropertyManager.kt |