# 架构设计文档 ## 🏗️ 整体架构 智慧建筑应用采用模块化架构设计,主要分为四个核心模块: ```mermaid graph TB subgraph "智慧建筑应用架构" A[App 主应用模块] --> B[BaseCore 基础核心模块] A --> C[WaterDrop 水滴效果模块] A --> D[ImageSelector 图片选择器模块] end subgraph "App 模块功能" A1[UI界面层] A2[业务逻辑层] A3[数据管理层] end subgraph "BaseCore 模块功能" B1[基础Activity/Fragment] B2[网络请求封装] B3[工具类集合] B4[通用UI组件] end A --> A1 A --> A2 A --> A3 B --> B1 B --> B2 B --> B3 B --> B4 ``` ## 📱 应用架构 ### MVVM 架构模式 ```mermaid graph TD subgraph "MVVM 架构模式" A[View Layer
Activity/Fragment] --> B[ViewModel
业务逻辑处理] B --> C[Repository
数据仓库] C --> D[API Service
网络服务] C --> E[Local Storage
本地存储] end subgraph "数据流向" F[用户操作] --> A A --> G[UI更新] B --> H[LiveData/StateFlow] H --> A end F --> A A --> B B --> C C --> D C --> E B --> H H --> G ``` ### 核心组件 ```mermaid classDiagram class BaseBindingActivity { +getRootView()* View +initView()* +bindDataObserver() +requestPermission() +transStatusBar() } class MainActivity { +initView() +bindDataObserver() +loadRootPage() +showFragment() -mPageList: ArrayList~BasePageFragment~ -viewModel: MainViewModel } class BaseFragment { +getRootView()* View +initView()* +initData()* } class BasePageFragment { +onBindObserver() -mContext: Context } class BaseContextViewModel { +searchFilter() +launchOnUI() } class MainViewModel { +generateTab() +generatePage() +tabProvider: TabEventProvider -tabObserver: TabObserver } BaseBindingActivity <|-- MainActivity BaseBindingActivity <|-- LoginActivity BaseBindingActivity <|-- ProjectDetailsActivity BaseFragment <|-- BasePageFragment BasePageFragment <|-- MainFragment BasePageFragment <|-- HomeFragment BasePageFragment <|-- MineFragment BaseContextViewModel <|-- MainViewModel MainActivity --> MainViewModel MainActivity --> BasePageFragment ``` #### 1. BaseBindingActivity - 所有Activity的基类 - 提供ViewBinding支持 - 统一的生命周期管理 - 权限请求封装 #### 2. MainActivity - 主界面容器 - 底部导航管理 - Fragment切换控制 - 权限初始化 #### 3. 页面模块 - **首页模块**: 功能导航、轮播图 - **项目管理**: 项目详情、设备管理 - **任务管理**: 计划创建、任务分配 - **签到模块**: 员工签到、项目签到 - **图片模块**: 选择、编辑、预览 ## 🔧 模块详解 ### App 模块 主应用模块,包含所有业务逻辑和UI界面。 ```mermaid graph TD subgraph "App 模块包结构" A[com.example.smart] --> B[ui/ UI层] A --> C[util/ 工具类] A --> D[request/ 网络请求] A --> E[enumlist/ 枚举定义] B --> B1[main/ 主界面] B --> B2[home/ 首页] B --> B3[project/ 项目管理] B --> B4[plan/ 计划管理] B --> B5[sign/ 签到模块] B --> B6[item/ 任务管理] B --> B7[options/ 配置选项] end ``` **主要包结构**: ``` com.example.smart/ ├── ui/ # UI层 │ ├── main/ # 主界面 │ ├── home/ # 首页 │ ├── project/ # 项目管理 │ ├── plan/ # 计划管理 │ ├── sign/ # 签到模块 │ ├── item/ # 任务管理 │ └── options/ # 配置选项 ├── util/ # 工具类 ├── request/ # 网络请求 └── enumlist/ # 枚举定义 ``` ### BaseCore 模块 基础核心模块,提供通用功能和工具类。 ```mermaid graph LR subgraph "BaseCore 模块功能" A[基础Activity/Fragment] --> B[网络请求封装] B --> C[工具类集合] C --> D[通用UI组件] D --> E[权限管理] end subgraph "提供能力" F[ViewBinding支持] G[生命周期管理] H[权限请求] I[网络拦截器] J[工具方法] end A --> F A --> G A --> H B --> I C --> J ``` **主要功能**: - 基础Activity/Fragment - 网络请求封装 - 工具类集合 - 通用UI组件 - 权限管理 ### WaterDrop 模块 水滴效果模块,提供特殊UI效果。 ### ImageSelector 模块 图片选择器模块,提供图片选择和管理功能。 ## 🌐 网络架构 ### API 服务 ```mermaid sequenceDiagram participant UI as UI Layer participant VM as ViewModel participant API as ApiService participant Client as RetrofitClient participant Server as Server UI->>VM: 用户操作 VM->>API: 直接调用API API->>Client: Retrofit请求 Client->>Server: HTTP请求 Server-->>Client: 响应数据 Client-->>API: 返回结果 API-->>VM: 处理数据 VM-->>UI: 更新UI ``` **网络架构特点**: - 使用 Retrofit + OkHttp - 统一的请求拦截器 (HeaderInterceptor, LoggingInterceptor) - 双服务器支持 (主服务器 + OSS服务器) - 协程支持 (suspend函数) - 自动Token管理 ### 数据流向 ```mermaid graph LR A[UI] --> B[ViewModel] B --> C[ApiService] C --> D[RetrofitClient] D --> E[Server] E --> D D --> C C --> B B --> A subgraph "拦截器" F[HeaderInterceptor
Token管理] G[LoggingInterceptor
日志记录] end D --> F D --> G ``` ## ✅ 架构验证总结 基于代码分析,当前架构图已根据实际代码进行了以下修正: ### 🔍 验证结果 #### ✅ 正确的架构设计 1. **模块化架构**: 四个核心模块 (App, BaseCore, WaterDrop, ImageSelector) 确实存在 2. **MVVM模式**: ViewModel确实存在,但简化了Repository层,直接使用ApiService 3. **基类继承**: BaseBindingActivity → MainActivity 的继承关系正确 4. **Fragment架构**: BaseFragment → BasePageFragment 的继承关系正确 5. **网络架构**: Retrofit + OkHttp + 拦截器的设计正确 #### 🔧 架构修正 1. **简化数据层**: 实际代码中没有Repository层,ViewModel直接调用ApiService 2. **拦截器设计**: 添加了HeaderInterceptor和LoggingInterceptor的详细说明 3. **双服务器支持**: 主服务器和OSS服务器的配置正确 4. **协程支持**: 使用suspend函数进行异步处理 #### 📱 实际包结构验证 - `com.example.smart.ui.main` - 主界面模块 ✅ - `com.example.smart.ui.home` - 首页模块 ✅ - `com.example.smart.ui.project` - 项目管理模块 ✅ - `com.example.smart.ui.plan` - 计划管理模块 ✅ - `com.example.smart.ui.sign` - 签到模块 ✅ - `com.example.smart.ui.item` - 任务管理模块 ✅ - `com.example.smart.ui.options` - 配置选项模块 ✅ #### 🌐 网络架构验证 - **RetrofitClient**: 单例模式,支持双服务器 ✅ - **ApiService**: 接口定义完整,使用suspend函数 ✅ - **拦截器**: HeaderInterceptor自动添加Token,LoggingInterceptor记录日志 ✅ - **协程支持**: 所有API调用都使用suspend函数 ✅ ### 📋 架构特点 - **简化设计**: 去除了Repository层,直接使用ApiService - **模块化**: 清晰的模块划分,便于维护 - **基类复用**: 统一的基类设计,减少重复代码 - **网络优化**: 双服务器支持,自动Token管理 - **协程支持**: 现代化的异步处理方式