智慧建筑应用采用模块化架构设计,主要分为四个核心模块:
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
graph TD
subgraph "MVVM 架构模式"
A[View Layer<br/>Activity/Fragment] --> B[ViewModel<br/>业务逻辑处理]
B --> C[Repository<br/>数据仓库]
C --> D[API Service<br/>网络服务]
C --> E[Local Storage<br/>本地存储]
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
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
主应用模块,包含所有业务逻辑和UI界面。
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/ # 枚举定义
基础核心模块,提供通用功能和工具类。
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组件
- 权限管理
水滴效果模块,提供特殊UI效果。
图片选择器模块,提供图片选择和管理功能。
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管理
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<br/>Token管理]
G[LoggingInterceptor<br/>日志记录]
end
D --> F
D --> G
基于代码分析,当前架构图已根据实际代码进行了以下修正:
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 - 配置选项模块 ✅