Files
TPSchedule/docs/android-mvp-validation.md
T

37 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Android 首版验证记录
日期:2026-10-13。测试环境:Flutter 3.47.7 / Dart 3.13.5 / JDK 17;Android 16 API 36,Pixel 7 模拟器,1080×2400。首版版本 0.1.0+1,包 ID com.example.hepan_everyday,最低 Android 7.0(API 24)。
## 已验证
- `flutter analyze`:No issues found。
- `flutter test`:58 项通过,包括 11 节时间、上海时区和非周一开始日、不连续周次、导入拒绝保留原课表、存储损坏恢复、示例隔离、通知去重和权限降级、日历中断恢复与归属检查、200% 字体和重叠课程、通知点击详情。
- `integration_test/app_flow_test.dart` 在 Android 模拟器通过:两页导航、单色设置、实际日期选择器和学期周数保存、导入预览取消与确认、示例不改真实保存文件、错误导入保持数据、重开恢复。
- `integration_test/calendar_bridge_test.dart` 在专用 Hepan_Integration_Test 日历通过:创建、再次同步更新同一 ID、映射丢失后找回、错误 key 无法删除、删除自有事件。设备实际查询表明 Unrelated_fixture 事件保留,CalendarContract.Reminders 无记录。
- 首次真实 APK 构建、安装、启动成功。初次编译下载依赖用时约 695 秒,后续构建约 40 秒。
- 短时通知使用独立测试入口 tool/reminder_probe.dart,不写入用户课表文件。应用退到后台后系统收到通知,实际标题及内容包含测试课程、教师和教室;点击通知打开对应课程详情。
## 补充设备结果
- 模拟器重启后:未重新打开 APP,系统仍送出已安排的测试通知;启动正式 APP 后,空课表协调取消残留自有通知。
- 已重建并安装 lib/main.dart 正式入口 APK,核实包名、0.1.0+1、API 24/36 和三种 Android 架构。示例课表、我的、周日、末节、设置和 200% 字体已有设备截图;验证 APK 不包含测试入口。
- 已完成一次独立代码审查:无 Critical/Minor,三项 Important 均用回归测试修复。58 项测试全通过,未进行重复审查。
## 仍需本人手机验证
- 本人学校登录、验证码、二次验证、真实研究生课表解析。目前解析器明确提示待联调,保护已有课表;见 school-integration-status.md。
- 真实手机的厂商省电、锁屏通知、长时间后台与真机重启行为;模拟器结果不能代替真机。
- 不同手机日历应用与云账户对自定义归属标记的同步行为。
- iOS 尚未配置及验证。
## 本轮修复和设备异常
日历设备测试复现 Calendar Provider 不允许“事件单条 URI + selection”操作;改为集合 URI 加事件 ID、应用包和实例标记条件,原设备测试随后通过。首次设备界面测试时模拟器连接中断;重新启动并使用软件图形模式后同项测试通过。首次权限检查未通过来自测试框架重装应用;本轮单独授权后完成系统日历测试。
通知初始化暂时失败后可重试,日历服务异常在设置中解释并保持未启用。首次同步中断、尚无保存 ID 时,通过选定日历的专属标记恢复清理;清理失败持久保存待重试状态。
补充:系统文件选择器已从 Downloads 选择随附 JSON,正常显示 3 条课程预览和示例来源;飞行模式下正式 APP 重开后页面正常,示例体验未写成真实课程。
审查修复:设置改为按字段在最新状态上修改;首次日历写入前保存未完成状态,清理成功才允许更换目标;没有可用备份时提供确认恢复入口,真实文件测试验证损坏主文件和备份均先归档。
最终 APK:229736269 字节,SHA-256 FC61132FB0CD2881A300BB1A2D7ABB9994EDF54E369C65E1FB9E285FB42AA114。修复后重新构建、安装、启动,原生页面同时存在课表和我的两个标签入口;受影响 app_flow 设备测试重新通过。