Files
Obsidian/项目文档/徐工/项目md文件/CLAUDE.md
T

159 lines
6.0 KiB
Markdown
Raw Normal View History

2026-11-05 14:35:04 +08:00
# 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/<ModuleName>/`
5. **语音唤醒广播:** `YXUtils.ACTION_START_TXZVOICE` / `android.intent.action.start_txzvoice`