视觉按最新原型,业务按已确认PRD。现有代码为满足设计而改造。执行见按设计实施与任务卡;当前代码与验证范围见消费者功能页。
Runtime8 Android 开发与安装验证
2026-10-04。当前源代码已进入完整Android测试安装包,并在独立Android36模拟器运行。网站/API/App/OTA未正式发布,CF仍是设计文档站。
本轮修复
| 实际安装发现的问题 | 已修改 |
|---|---|
| 邮箱验证成功,但本站API仍识别为游客 | 带官方会话的API请求使用credentials omit,避免Android环境CookieJar覆盖手动合并的Cookie;认证仍由Better Auth/Expo/SecureStore管理 |
| 注册未记录当前安装设备 | 通过官方SDK的onRequest合并现有签名viewer Cookie,保留官方会话;设备记录不等于App资格审批 |
| API可以访问,但系统公共互联网检测未通过,进度不上传、缓存不启动 | JS仅在物理连接断开时停止联网任务;原生下载由实际传输判断连通性,逐任务保留Wi-Fi、账号、到期与容量检查 |
| 缓存已完成,断网播放器黑屏 | react-native-video原生Source解析器接受专用dramivio-offline地址,由原生缓存库复核账号、完成状态与有效期 |
名称、启动画面和图标已使用Dramivio现有确认资产。Android播放器仍复用Media3,iOS仍复用AVPlayer。
实际安装结果
使用真实Go、Better Auth与隔离RAM PostgreSQL;邮箱验证码本机捕获,App安装资格仅为测试审批。媒体为6秒MP4,供应商测试域名在客户端无法解析。
- 邮箱首次验证生成账号;注册设备记录和登录前的爱心追剧操作均恢复。
- 在线播放3集,实际直连失败后转发;数据库记录每集位置与时长,累计扣3次。
- 缓存已观看的第1集:下载器先直连,失败后沿原许可转发,原生缓存完成280496字节。扣次仍为3,许可到期时间不变。
- 移除测试网络映射,关闭Wi-Fi/移动网络,飞行模式冷启动App。缓存播放至6秒;服务器API与视频请求均未增加。
- 离线拖到约2秒,结束进程后恢复该位置。联网后实际数据库收到2.005秒位置;仍为3次,无邀请奖励或已看证明。
- 测试结束后关闭专用模拟器、Go、认证服务和临时数据库;Go测试退出码0。
冷启动恢复账号不会自动启动旧下载,用户点击“继续下载”恢复已排队任务。这项规则保留。
验证与产物
| 检查 | 结果 |
|---|---|
| App行为 | 342/342,类型检查通过 |
| Android实际Media3/SQLite/Cache | 34/34,无失败或跳过;新用例在修复前复现失败 |
| 原生接入JS回归 | 14/14,包含在App检查范围 |
| 当前完整Android APK | 构建、DEX/清单/Hermes/签名/运行版本检查通过,安装与实际播放通过 |
| ZIP 16KiB对齐 | 通过;此检查不代表所有设备/native库兼容已验收 |
| 持久补丁 | 官方6.19.2原包干净重放22个源码文件,与安装依赖一致 |
| iOS JavaScript | 当前Hermes导出通过;没有完整Xcode/Pods或iOS设备结果 |
本地测试APK(仅本机测试包,未公开提供下载) · 自包含验证记录 · 缓存截图 · 断网播放截图 · 位置恢复截图
APK仅用于本机联调:API为http://127.0.0.1:18091,OTA为同地址/api/updates,沿用现有debug签名。真实手机不能直接访问电脑的127.0.0.1;正式API、签名和OTA环境需在发布阶段配置。本包不是生产下载入口。
剩余范围
真实渠道、SMTP、App安装资格、邀请观看证明、真机和完整iOS构建仍未验收。后台剩余选集调度、服务端解码缓存、Redis适配、真实语义模型、完整设计状态和正式部署仍待完成。本轮为主Agent本地复核,没有新增独立子Agent复审。