b8e4c24fd285b30de6987a92e6122718356797f1
补偿提交:commitOnArchive 连续第四轮未落盘(M3/M4/M5 同款故障),由主控在子会话工作树补交。 M6 统计与数据上传模块交付: - M6-02 (2.10) 项目监测计划统计列表(完成度进度条+百分比 Chip) - M6-03 (2.11) / M6-04 (2.12) 测组统计与监测点统计两层下钻 - M6-01 (2.13) SAF 选原始文件 multipart 直传 AnalysisMonitorData + 解析结果反馈 - 上传队列补传闭环 UploadQueueSyncer(应用启动 + ConnectivityManager VALIDATED onAvailable 双触发,Mutex 串行,成功 SUCCESS/失败回退 PENDING 记 retry) - Tab.STATS 业务化:挂载 StatsWorkspaceFragment,删除占位 StatsFragment - 新增 StatApi/UploadApi/StatModels + StatRepository/UploadRepository - 单测 StatsModelsTest/UploadPayloadWrapTest;静态核查 7 项 + 生产网关负向契约 4 端点
task(0a00ccbd-6f98-4730-adf2-6f1e864823de): Mount M2 project workbench home and modernize M1 layouts
监测数据不落地平台 · 安卓客户端
外业监测数据「不落地」采集与上传工具:现场用手机通过蓝牙连接振弦式读数仪(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 零依赖。
快速开始
- Android Studio(Ladybug+,JDK 17)打开工程根目录,等待 Gradle Sync;
- 服务器地址、SecretKey、SystemCode 通过
app壳的配置仓储注入(见core:network的NetworkConfig),一律不写入代码库; - 运行:
./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)
Description
Languages
Java
52.7%
Kotlin
47.3%