docs: Task 14 验收记录改写为本机实际可验内容,并显式声明覆盖缺口

This commit is contained in:
2026-09-10 11:32:49 +08:00
parent f55158e99c
commit 706b2797ff
@@ -4748,34 +4748,64 @@ Expected: `BUILD SUCCESSFUL`,生成 `app/build/outputs/apk/debug/app-debug.apk
- [ ] **Step 5: 写验收记录 `repos/ring-health-app/docs/verification-m1.md`** - [ ] **Step 5: 写验收记录 `repos/ring-health-app/docs/verification-m1.md`**
**先把这份记录写成「本机实际能验到的东西」**(ledger Ruling R21):本机没有设备,
人工验收那一段**必然**是「未执行」,不要粉饰成通过,也不要把空表格留在那里让人误读成已验。写出这个缺口本身,
就是这份记录最有价值的部分 —— M1 的全部运行时行为目前只有编译期保证。
```markdown ```markdown
# M1 静态页面验收记录 # M1 静态页面验收记录
- 验收日期:<填写> ## 环境
- 构建版本:0.1.0 (versionCode 1)
- 测试设备:<填写机型与 Android 版本>
- 单元测试:`./gradlew :app:testDebugUnitTest` 全绿
- 构建:`./gradlew clean assembleDebug` 成功
## 人工验收结果 - 记录日期:2026-09-10
- 构建版本:0.1.0 (versionCode 1)
- 构建机:Windows 11,JDK 17.0.12,Android SDK `D:\Android\Sdk`(仅 `platform-tools` /
`platforms;android-36` / `build-tools;36.1.0`)
- **测试设备:无** —— 本机没有安装任何模拟器镜像,也没有连接真机
## 自动化验证(已执行)
- 单元测试:`./gradlew :app:testDebugUnitTest` —— **21 项全绿**
(`FormattersTest` 7 + `MockDataProviderTest` 5 + `HomeViewModelTest` 1 + `WorkoutViewModelTest` 1
+ `DeviceViewModelTest` 2 + `MetricDetailViewModelTest` 3 + `RoutesTest` 2)
- 构建:`./gradlew clean assembleDebug` —— `BUILD SUCCESSFUL`,
产物 `app/build/outputs/apk/debug/app-debug.apk`
- IDE Preview:各页面的 `@Preview` 在 Android Studio 中可渲染(这是没有设备时唯一的界面检查手段)
## 人工验收(未执行 —— 无设备)
下表**全部未打勾**。这份清单已原样保留,交给有设备的人执行;不要在没有实测的情况下填入结果。
| 项 | 结果 | 备注 | | 项 | 结果 | 备注 |
|---|---|---| |---|---|---|
| 应用启动无崩溃 | | | | 应用启动无崩溃 | 未执行 | 无设备 |
| 四 Tab 切换 | | | | 四 Tab 切换 | 未执行 | 无设备 |
| 首页步数大环 | | | | 重按已高亮的父 Tab 的行为 | 未执行 | 需实测:推测会停在子页而非回到 Tab 根 |
| 首页指标卡(含血压未开启) | | | | 每个页面的 `@Preview` 可渲染 | 未执行 | 需在 Android Studio 中逐个打开确认 |
| 详情页周/月切换 | | | | 次要文字灰度一致 | 未执行 | 不得出现 `TextSecondary` 与 `onSurfaceVariant` 混用 |
| 运动页与历史页 | | | | 首页:设备状态条 / 步数大环 8,426 / 六个指标卡(血压“未开启”) | 未执行 | 无设备 |
| 设备页与开关 | | | | 指标详情页:周/月切换(7 根 / 30 根柱子) | 未执行 | 无设备 |
| 我的页 | | | | 睡眠详情:分期卡片只在睡眠指标出现,入睡/起床读起来像「一晚」 | 未执行 | 无设备 |
| 运动页 / 运动历史页 | 未执行 | 无设备 |
| 设备页 / 设备设置开关(返回后状态保持) | 未执行 | 无设备 |
| 我的页 | 未执行 | 无设备 |
| 旋转屏幕、深色系统设置下不崩溃 | 未执行 | 无设备 |
## 已知限制(阶段一有意为之) ## 已知限制(阶段一有意为之)
- 数据全部为 Mock,不连蓝牙 - 数据全部为 Mock,不连蓝牙、不连后端
- 血压恒为“未开启”占位 - 血压恒为“未开启”占位(`HealthSummary.bloodPressure = null`)
- 开关状态不持久化,重启即重置 - 设备设置页的开关只改内存状态,重启即重置(对应 M2 的协议 0502/0504)
- 睡眠分期条与入睡/起床时间是演示值(固定比例 + 最后一个数据点往前 8 小时),无真实分期数据
- 详情页统计摘要一律保留一位小数(步数因此显示为「平均 7512.3」这类精度过剩的形式)
- 仅浅色模式 - 仅浅色模式
## 覆盖缺口声明
**M1 的全部运行时行为目前只有编译期与单元测试保证,没有任何一次真机/模拟器运行。**
`assembleDebug` 成功只说明代码能编译、能打包,**不说明界面正确、不说明不会崩溃**。
这是本机没有设备导致的已知缺口(ledger Ruling R21),不是「已验证通过」。
首次拿到设备时,请从上面那张人工验收表开始逐项补齐。
``` ```
- [ ] **Step 6: 更新 App `README.md` 页面清单** - [ ] **Step 6: 更新 App `README.md` 页面清单**