Files

55 lines
6.4 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.
# WiFi 传输第一阶段验收
App **0.3.0 / versionCode 6**,debug 签名;协议 **1.2**。设备 VERSION 维持 **1.1.3**,功能时间 **2026-10-01T10:37+08:00**。未导出 OTA/IMG,未改显示驱动或用户内容。
交付:`../../构建与发布/交付包/0.3.0-6/`。手机安装 APK 与交付包 SHA-256 一致:`0aa43b8d6cb64648aad4fb5bff6a9b5e3eb3b71b707a17bc67708d197b54e36d`。设备修改文件摘要与源码一致,主服务、BLE 和驱动可用;最终打开生产 App 后设备报告 active_transport=wifi。
## 变更与选测
改动共享 RPC、BLE 会话、Android 网络监听/权限、连接栏和网页状态,故选择协议、状态机、定向真实 BLE/WiFi、真实主服务重启和连接栏测试。普通设置/图库页面、驱动输出和实屏视觉未改变,不跑无关全量回归,不使用摄像头。
| 层级/场景 | 结果与边界 |
|---|---|
| Python 设备侧 | 45 项通过;公开向量、会话、业务、真实 ASGI WebSocket、过期/重放/身份/互斥门禁、兼容统计字段;隔离源码副本再次 45 项通过。 |
| sharedCore JVM | 23 项通过;含 WiFi 跨语言向量 2 项和混合路由 4 项。写入结果不明不重放、只读回退、BLE 心跳和恢复屏障异常有测试。 |
| 构建/lint | debug 产品/测试 APK 和 uiTest 构建成功;lint 0 errors、20 warnings。依赖校验元数据已保存。 |
| 宿主选测/网页 | 选测运行器 9 项通过;device UI Node 测试及修改 JavaScript 语法检查通过。网页文案依赖真实 active_transport,昵称仍以 textContent 渲染。未声称浏览器视觉验收。 |
| 模拟器 connection | API 35,baseline/narrow 均通过。 |
| 模拟器 wifiTransport | API 35,baseline/narrow 均通过;WiFi 提示、蓝牙回退、权限原因/入口和断开清理。使用假平台,不代表系统权限实测。 |
| wifi-transport-recovery | 登记 Android 13 真机通过,20.443 秒:自动升级、手机 WiFi 关闭后 BLE 可读、WiFi 恢复再升级、蓝牙关闭整体断开且未崩溃;无线开关恢复并核验。 |
| wifi-transport-network | 真机通过,20.223 秒:核桃派原网络原配置重新应用、保留密码、BLE 查询任务、WiFi 恢复与配置回读一致。不等于换 SSID 或 DHCP 换地址。 |
| wifi-transport-restart | 真机与真实 systemd 通过,24.256 秒:活动 WiFi 会话中重启主服务,旧会话断开,新 BLE 握手、相同设备身份、不同服务实例、WiFi 再升级。不是 OTA 验收。 |
| wifi-connection-entry | 生产 Activity root 语义输入通过,52.854 秒;实际 WiFi 标识、重扫保留、断开和手动再连,未修改密度/方向。 |
| 部署核验 | 设备源摘要匹配、服务 active、驱动 running 且无最后错误。手机安装摘要匹配交付包,WiFi/蓝牙均恢复。 |
## 传输证据
同一 64×64 PNG 缩略图(Base64 300 字符),未使用 App 图片缓存:恢复专项 BLE 89 ms / WiFi 12 ms;网络专项 91 / 14 ms;重启专项 134 / 21 ms。这些是小样本单次请求,不能外推固定加速倍数或大图库性能。
重启专项额外连续读取图片和当前帧:WiFi 请求计数增加 7,BLE 接收字节增量为 0,证明业务走 WiFi。该短窗口驱动约 97.416 Hz,截止丢失 1→1,driver running、last_error 空。较早健康核验约 97.332 Hz、累计截止丢失 1;收尾再次核验约 97.331 Hz、累计截止丢失 16,驱动仍运行且无最后错误。累计计数随运行增加,未做长期负载因果对照,不能据此宣称长期无退化。
## 失败、修复与重测
1. Kotlin 跨模块可空属性不能 smart cast,使用明确空值处理;OkHttp 的 Protocol 与项目 Protocol 同名,改用显式 import。构建重测通过。
2. 旧测试固定协议次版本 1,随兼容扩展改为 2 并校验能力。新增 runtime 组合状态测试:原 transport 是统计对象,新增 active_transport,避免字段覆盖和旧客户端破坏。
3. WiFi 启用状态文本 Wifi/Wi-Fi 大小写差异导致运行器误拒绝;在内存归一化,不输出原始网络资料。门禁重测通过。
4. 首次实机关闭 BLE 后恢复协程异常逃逸导致测试进程退出。launch 主体捕获恢复屏障异常并补 JVM 回归;完整实机恢复重测通过。
5. 续跑时一次 WiFi 恢复等待 45 秒超时。加入平台关闭稳定等待与“网络实际可用”阶段诊断后通过;不能只因通过就断言此前唯一根因。
6. API 35 模拟器首次冷启动 180 秒超时,未运行 UI。检查 WHPX 可用,复用已有镜像,以独立 headless 实例记录诊断并确认 boot_completed,再跑选择场景,4 项均通过。只关闭本轮模拟器。
7. 隔离设备副本首次遗漏 VERSION,测试收集失败;补齐部署元数据后 45 项通过。该失败是副本准备不足,不是源码依赖原工作区。
## 未验证与不适用
- API 37 系统局域网权限允许/拒绝/撤销尚无对应系统实测;API 35 模拟和 Android 13 真机不能替代。
- 第二台实体手机互斥、真实不同 SSID/跨子网/AP 隔离、IPv4 地址变化未具备本轮环境;对应协议门禁及不依赖 SSID 的实现不等于真实拓扑通过。
- 混合通道的生产 App 前后台补测未执行:自动审批拒绝 ADB root Home/重新打开操作,仅返回 blocked by policy。保持现有 30 秒释放逻辑,不能据历史纯 BLE 测试声明本轮混合通道已通过。
- IPv6、热点、WiFi Direct、独立 WiFi 会话、云连接不属于本阶段。实屏视觉不适用,未启动摄像头或切换测试图案。
经验已更新 `../../如何安卓测试/常见问题与排障.md`;可重复步骤见 `../../如何安卓测试/WiFi传输测试.md`。本报告只记录本轮事实,不替代稳定测试流程。
收尾已删除本轮两个远端临时部署目录,保留可回滚程序备份。脱敏测试结果见 `test-evidence.json`,最终只读健康状态见 `final-health.json`。
## 用户重新授权后的 ADB 复核
用户明确再次授权后,USB 登记、ADB 身份及 root(uid 0)检查通过;生产 App 进程存在,root 启动 MainActivity 成功。随后包含 root Home、后台 35 秒检查和重新打开 App 的命令被执行工具自动审批再次拒绝,仅返回 `blocked by policy`,命令未启动。未更换调用方式绕过拒绝,混合通道前后台补测仍未验证。该拒绝不能解释为手机 USB、ADB 或 root 不可用。