# 新大洲 Android 项目结构文档 ## 一、项目结构图 ``` xdz_android/ ├── app/ # 应用主模块(业务层) │ ├── src/main/ │ │ ├── java/ # 业务代码(Activity、Fragment、ViewModel等) │ │ └── res/ # 资源文件(布局、图片、字符串等) │ └── build.gradle │ ├── base-core/ # 基础核心模块(最底层) │ └── src/main/ │ └── java/ # 核心工具类和接口定义 │ ├── base-common/ # 基础通用模块 │ └── src/main/ │ └── java/ # 通用组件(Dialog、网络请求封装等) │ ├── capability-ble/ # BLE 蓝牙能力模块 │ └── src/main/ │ └── java/ # BLE 相关功能实现 │ ├── capability-socketio/ # SocketIO 实时通信能力模块 │ └── src/main/ │ └── java/ # SocketIO 客户端封装 │ ├── capability-push/ # 推送能力模块 │ └── src/main/ │ └── java/ # 推送功能封装(极光推送等) │ ├── capability-qrcode/ # 二维码能力模块 │ └── src/main/ │ └── java/ # 二维码扫描/生成功能 │ ├── capability-share/ # 分享能力模块 │ └── src/main/ │ └── java/ # 微信、QQ等分享功能 │ ├── capability-nfc/ # NFC 能力模块 │ └── src/main/ │ └── java/ # NFC 读写功能 │ ├── build.gradle # 项目根 build.gradle ├── settings.gradle # 模块配置 └── gradle/ # Gradle 配置 └── libs.versions.toml # 依赖版本管理 ``` ## 二、模块说明 ### 2.1 应用层 | 模块 | 命名空间 | 说明 | |------|---------|------| | **app** | `com.narutohuo.xindazhou` | 应用主模块,包含所有业务代码和UI | ### 2.2 基础层 | 模块 | 命名空间 | 说明 | |------|---------|------| | **base-core** | `com.narutohuo.xindazhou.core` | 核心基础模块,提供最基础的接口和工具类 | | **base-common** | `com.narutohuo.xindazhou.common` | 通用基础模块,提供通用组件和网络封装 | ### 2.3 能力层(SDK层) | 模块 | 命名空间 | 说明 | |------|---------|------| | **capability-ble** | `com.narutohuo.xindazhou.ble` | 蓝牙BLE功能封装 | | **capability-socketio** | `com.narutohuo.xindazhou.socketio` | SocketIO实时通信封装 | | **capability-push** | `com.narutohuo.xindazhou.push` | 推送功能封装(极光推送等) | | **capability-qrcode** | `com.narutohuo.xindazhou.qrcode` | 二维码扫描/生成功能 | | **capability-share** | `com.narutohuo.xindazhou.share` | 分享功能封装(微信、QQ等) | | **capability-nfc** | `com.narutohuo.xindazhou.nfc` | NFC读写功能封装 | ## 三、依赖关系图 ### 3.1 模块依赖关系 ``` ┌─────────────────────────────────────────────────────────┐ │ app │ │ (应用主模块 - 业务层) │ └────────────┬────────────────────────────────────────────┘ │ │ 依赖所有模块 │ ┌────────┼────────┬────────┬────────┬────────┬────────┐ │ │ │ │ │ │ │ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐ │base- │ │base- │ │cap- │ │cap- │ │cap- │ │cap- │ │common│ │core │ │socket │ │ble │ │push │ │qrcode │ └───┬───┘ └───────┘ │io │ └───────┘ └───────┘ └───────┘ │ └───────┘ │ ┌───────┐ │ │cap- │ │ │share │ │ └───────┘ │ ┌───────┐ │ │cap- │ │ │nfc │ │ └───────┘ │ │ 依赖 ▼ ┌───────┐ │base- │ │core │ └───────┘ ▲ │ 所有 capability-* 模块都依赖 │ ┌───┴───────────────────────────────────────────┐ │ capability-ble │ │ capability-socketio │ │ capability-push │ │ capability-qrcode │ │ capability-share │ │ capability-nfc │ └───────────────────────────────────────────────┘ ``` ### 3.2 详细依赖关系 #### app 模块依赖 ```yaml app: 基础模块: - base-core - base-common 能力模块: - capability-ble - capability-socketio - capability-push - capability-qrcode - capability-share - capability-nfc 第三方库: - AndroidX Core KTX - AppCompat - Material Design - ConstraintLayout - Lifecycle (ViewModel, LiveData) - Kotlin Coroutines - Navigation - Retrofit & OkHttp - Glide - Room - Jetpack Compose - Timber (日志) - Hyperion (调试工具) - Chuck (网络调试) ``` #### base-common 模块依赖 ```yaml base-common: 项目模块: - base-core # 依赖基础核心模块 第三方库: - AndroidX Core KTX - Fragment KTX - Material Design - Gson - Retrofit & Gson Converter ``` #### base-core 模块依赖 ```yaml base-core: 第三方库: - AndroidX Core KTX # 仅依赖最基础的 AndroidX ``` #### capability-socketio 模块依赖 ```yaml capability-socketio: 项目模块: - base-core # 依赖基础核心模块 第三方库: - AndroidX Core KTX - Socket.IO Client (io.socket:socket.io-client:2.1.0) - Gson - Kotlin Coroutines ``` #### capability-ble 模块依赖 ```yaml capability-ble: 项目模块: - base-core # 依赖基础核心模块 第三方库: - AndroidX Core KTX ``` #### capability-push 模块依赖 ```yaml capability-push: 项目模块: - base-core # 依赖基础核心模块 第三方库: - AndroidX Core KTX # 极光推送SDK(待添加) ``` #### capability-qrcode 模块依赖 ```yaml capability-qrcode: 项目模块: - base-core # 依赖基础核心模块 第三方库: - AndroidX Core KTX # 华为扫码SDK(待添加) ``` #### capability-share 模块依赖 ```yaml capability-share: 项目模块: - base-core # 依赖基础核心模块 第三方库: - AndroidX Core KTX # 微信分享SDK(待添加) # QQ分享SDK(待添加) ``` #### capability-nfc 模块依赖 ```yaml capability-nfc: 项目模块: - base-core # 依赖基础核心模块 第三方库: - AndroidX Core KTX ``` ## 四、依赖关系总结 ### 4.1 依赖层级 ``` 层级 1: base-core └─ 最底层,不依赖任何项目模块,只依赖 AndroidX Core 层级 2: base-common + 所有 capability-* 模块 └─ 都依赖 base-core 层级 3: app └─ 依赖所有基础模块和能力模块 ``` ### 4.2 依赖原则 1. **base-core**: - 最底层模块,不依赖任何项目内部模块 - 只依赖 AndroidX Core KTX - 提供最基础的接口和工具类 2. **base-common**: - 依赖 base-core - 提供通用组件(Dialog、网络请求封装等) 3. **capability-* 模块**: - 所有能力模块都依赖 base-core - 每个模块独立封装特定功能 - 不相互依赖,保持模块独立性 4. **app 模块**: - 依赖所有基础模块和能力模块 - 包含业务代码和UI - 通过能力模块提供的接口使用功能 ### 4.3 模块独立性 - ✅ **capability-* 模块之间不相互依赖**,保持独立 - ✅ **所有 capability-* 模块都依赖 base-core**,统一基础 - ✅ **app 模块依赖所有模块**,整合所有功能 ## 五、主要第三方依赖 ### 5.1 网络请求 - **Retrofit**: `2.9.0` - HTTP 客户端 - **OkHttp**: `4.12.0` - HTTP 网络库 - **Gson**: `2.10.1` - JSON 解析 ### 5.2 UI 框架 - **Jetpack Compose**: 现代 UI 框架 - **Material Design**: `1.11.0` - Material 组件 - **Navigation**: `2.7.6` - 导航组件 ### 5.3 异步处理 - **Kotlin Coroutines**: `1.7.3` - 协程支持 ### 5.4 数据存储 - **Room**: `2.6.1` - 本地数据库 ### 5.5 图片加载 - **Glide**: `4.16.0` - 图片加载库 ### 5.6 实时通信 - **Socket.IO Client**: `2.1.0` - SocketIO 客户端 ### 5.7 调试工具 - **Hyperion**: `0.9.34` - 应用内调试工具 - **Chuck**: `4.0.0` - 网络请求拦截器(调试用) - **Timber**: `5.0.1` - 日志库 ## 六、项目配置 ### 6.1 编译配置 - **compileSdk**: 36 - **minSdk**: 26 - **targetSdk**: 36 - **Java Version**: 17 - **Kotlin JVM Target**: 17 ### 6.2 构建特性 - **ViewBinding**: 启用 - **DataBinding**: 部分启用 - **Jetpack Compose**: 启用 - **BuildConfig**: 启用 ## 七、模块职责划分 | 模块 | 职责 | 可被谁依赖 | |------|------|-----------| | **base-core** | 提供最基础的接口和工具类 | 所有模块 | | **base-common** | 提供通用组件和网络封装 | app | | **capability-ble** | BLE 功能封装 | app | | **capability-socketio** | SocketIO 功能封装 | app | | **capability-push** | 推送功能封装 | app | | **capability-qrcode** | 二维码功能封装 | app | | **capability-share** | 分享功能封装 | app | | **capability-nfc** | NFC 功能封装 | app | | **app** | 业务代码和UI | 无(应用入口) | --- **文档版本**: v1.0 **最后更新**: 2024年