first commit
This commit is contained in:
commit
669f49b1d6
342 files changed
+320811
No files matched your search
@@ -0,0 +1,159 @@
|
||||
# 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`
|
||||
Reference in new issue
Block a user