6.0 KiB
6.0 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
车载 Android 应用系统,多模块架构。主要模块包括语音助手、车控、媒体、系统UI等。当前分支 develop_xcmg 为徐工(xcmg)项目开发分支。
Build Commands
# 编译单个模块 (Debug)
./gradlew :YX_Voice:assembleDebug
./gradlew :YX_CarControl:assembleDebug
# 编译单个模块 (Release)
./gradlew :YX_Voice:assembleRelease
# 清理构建
./gradlew clean
# 全量编译所有 APK (使用脚本)
./build_apk.sh # Debug 版本
./build_apk.sh release # Release 版本
# 编译 YX_Support jar 包
./gradlew makejar # 输出到 YX_Support/build/libs/
Architecture Overview
模块分层结构
┌─────────────────────────────────────────────────────────────────────┐
│ Application Layer (应用层) │
│ YX_Voice | YX_CarControl | YX_Music | YX_Radio | YX_Video | ... │
└─────────────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────────┐
│ SDK Layer (SDK层) │
│ YX_AutoMotiveSDK | YX_IPC_SDK | YX_MediaSDK | YX_MusicSDK | ... │
└─────────────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────────┐
│ Base Library (基础库层) │
│ YX_Lib_CommonBase | YX_Lib_UIStyleBase | YX_Support │
└─────────────────────────────────────────────────────────────────────┘
跨进程通信 (YxIPC)
核心跨进程通信机制,位于 YX_IPC_SDK 模块。
使用方式:
// 初始化 (Application.onCreate)
YxIPC.getInstance().bind(application, ipcConfig);
// 发送消息 (无回调)
YxIPC.getInstance().sendRemoteNoCall(remotePackage, bundle);
// 发送消息 (有回调)
YxIPC.getInstance().sendRemoteByCall(remotePackage, bundle, sessionId, callback);
// 注册消息监听
YxIPC.getInstance().addMessageListener(messageListener);
关键类: YxIPC.java, YxMessenger.java, MessageListener.java
语音模块架构 (YX_Voice)
语音助手模块,与同行者(TXZ)语音服务通信。
核心类:
| 类 | 路径 | 职责 |
|---|---|---|
| VoiceManager | core/VoiceManager.java | 单例管理器,包含 VoiceEventHelper 实例 |
| VoiceEventHelper | helper/VoiceEventHelper.java | 事件处理核心,所有语音操作入口 |
| ProtocolManager | core/ProtocolManager.java | IPC 协议分发器 |
| YxProtocolHandler | core/YxProtocolHandler.java | 根据包名分发协议到对应 Protocol |
| VoiceProtocol | protocol/VoiceProtocol.java | TXZ 协议解析 |
| CarControlProtocol | protocol/CarControlProtocol.java | 车控状态同步协议 |
协议常量 (两套):
VoiceNewProtocolConst.java(YX_Voice) - TXZ 协议常量,与语音服务通信VoiceNewConstant.java(YX_Lib_CommonBase) - IPC 协议常量,模块间通信
车控模块 (YX_CarControl)
车辆硬件控制模块。
关键类:
VoiceSettingManager.java- 语音控制入口,接收 IPC 消息调用硬件CarControlsManager(YX_AutoMotiveSDK) - 硬件控制 API
Module Dependencies
模块间依赖关系 (典型):
YX_Voice → YX_IPC_SDK → YX_Lib_CommonBase → YX_Support
YX_Voice → YX_AutoMotiveSDK → (framework_classes.jar)
YX_CarControl → YX_IPC_SDK → YX_Lib_CommonBase
YX_CarControl → YX_SettingSDK → YX_AutoMotiveSDK
平台 SDK:
sdklibs/framework_classes.jar- Android framework 类 (需要 hidden API)sdklibs/yx_support_classes.jar- YX_Support 编译输出sdklibs/android.car.jar- Android Car API
Protocol Flow
语音控制指令流向:
TXZ语音 → VoiceProtocol → VoiceEventHelper → YxIPC → VoiceSettingManager → CarControlsManager → 硬件
状态同步流向:
硬件 → CarControlsControllerCallBack → VoiceSettingManager → YxIPC → CarControlProtocol → VoiceEventHelper → TXZ
Package Names
主要模块包名:
| 模块 | 包名 |
|---|---|
| YX_Voice | com.yaxon.voice |
| YX_CarControl | com.yaxon.carcontrol |
| TXZ语音 | com.txzing.voiceassistant |
| YX_Music | com.yaxon.music |
| YX_Radio | com.yaxon.radio |
| YX_Hvac | com.yaxon.hvac |
| YX_Launcher | com.yaxon.launcher |
| YX_SystemUI | com.android.systemui |
Signing
使用平台签名 (platform.jks):
- 密钥别名: yx
- 密钥密码: yx123456
- 所有模块共用同一签名配置 (config.gradle)
Branch Information
develop_xcmg- 徐工项目 (当前分支)x9hp_dw- 三一项目master- 主分支
Special Notes
- 编译环境: BuildTools 30.0.3, Gradle Plugin 4.1.3, compileSdk 29
- 平台 API: 需要
sdklibs/framework_classes.jar访问 hidden API - 混淆: Release 版本开启混淆 (minifyEnabled true)
- 输出路径: Release APK 输出到
third_apps/<ModuleName>/ - 语音唤醒广播:
YXUtils.ACTION_START_TXZVOICE/android.intent.action.start_txzvoice