*
This commit is contained in:
53
README.md
Normal file
53
README.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# 监测数据不落地平台 · 安卓客户端
|
||||
|
||||
外业监测数据「不落地」采集与上传工具:现场用手机通过蓝牙连接振弦式读数仪(IE-1000)与综合采集仪(VM208),解析采集数据并直接上传至院方监测平台,配合离线队列保证弱网/断网可用。
|
||||
|
||||
> 本文件为 2026-09-03 重建版(基线文件曾随工作树清理丢失,按任务记录复刻)。
|
||||
|
||||
## 技术基线
|
||||
|
||||
| 项 | 选型 |
|
||||
|---|---|
|
||||
| 语言 / UI | Kotlin 2.0.21、View 体系 + Material 3 |
|
||||
| 架构 | MVVM(ViewModel + StateFlow/LiveData) |
|
||||
| 网络 | Retrofit 2.11 + OkHttp 4.12 + kotlinx.serialization 1.7.3 |
|
||||
| 本地存储 | Room 2.6.1(离线优先队列)+ DataStore 1.1.1 + EncryptedSharedPreferences |
|
||||
| 依赖注入 | Hilt 2.52 |
|
||||
| 蓝牙 | Android 原生 BLE API;协议解析独立纯 Kotlin 模块 |
|
||||
| 构建 | AGP 8.7.3 / Gradle 8.10.2 / JDK 17 / minSdk 26 / targetSdk 34 |
|
||||
|
||||
## 模块结构
|
||||
|
||||
```
|
||||
app 业务壳:导航、主题、权限、配置注入(M1–M6 页面挂载点)
|
||||
core
|
||||
├ common AppResult / UiState / 日志门面(纯 Kotlin 优先)
|
||||
├ network 鉴权三要素拦截器、ApiEnvelope 统一解析、Retrofit 装配
|
||||
├ database Room AppDatabase + 上传队列(离线优先参考实现)
|
||||
└ ble BLE 扫描(按名称前缀过滤)、GATT 连接封装骨架
|
||||
ble-protocol 纯 Kotlin JVM:IE-1000 / VM208 帧解析(零 Android 依赖,可独立单测)
|
||||
```
|
||||
|
||||
依赖方向:`app → core:* + ble-protocol`;`core:{network,database,ble} → core:common`;`ble-protocol` 零依赖。
|
||||
|
||||
## 快速开始
|
||||
|
||||
1. Android Studio(Ladybug+,JDK 17)打开工程根目录,等待 Gradle Sync;
|
||||
2. 服务器地址、SecretKey、SystemCode 通过 `app` 壳的配置仓储注入(见 `core:network` 的 `NetworkConfig`),**一律不写入代码库**;
|
||||
3. 运行:`./gradlew :app:assembleDebug`;协议单测:`./gradlew :ble-protocol:test`。
|
||||
|
||||
## 配置说明
|
||||
|
||||
| 配置项 | 说明 | 注入点 |
|
||||
|---|---|---|
|
||||
| baseUrl | 平台接口地址(测试环境见接口文档 1.2.4) | ConfigRepository → NetworkConfig |
|
||||
| SecretKey | 供应商调用密钥(会定期更换,必须可配置) | 同上 |
|
||||
| SystemCode | 供应商编码(与 SecretKey 一一对应) | 同上 |
|
||||
| Token | 登录后颁发,登录接口外必带 | TokenProvider(DataStore) |
|
||||
|
||||
## 文档索引
|
||||
|
||||
- `docs/安卓客户端功能明细表.md` —— 36 个功能点、模块映射、优先级、接口覆盖对照
|
||||
- `docs/安卓客户端开发计划表.md` —— 6 阶段 12 周迭代计划、人日估算、里程碑、风险
|
||||
- `docs/BLE-IE1000.txt` —— IE-1000 / VM208 蓝牙协议原始说明
|
||||
- 接口规范 V4.5 —— 上海城建勘测院《监测数据不落地系统接口文档》(docs/ 下 docx)
|
||||
Reference in New Issue
Block a user