# 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 ```bash # 编译单个模块 (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` 模块。 **使用方式:** ```java // 初始化 (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 1. **编译环境:** BuildTools 30.0.3, Gradle Plugin 4.1.3, compileSdk 29 2. **平台 API:** 需要 `sdklibs/framework_classes.jar` 访问 hidden API 3. **混淆:** Release 版本开启混淆 (minifyEnabled true) 4. **输出路径:** Release APK 输出到 `third_apps//` 5. **语音唤醒广播:** `YXUtils.ACTION_START_TXZVOICE` / `android.intent.action.start_txzvoice`