FaceRecognitionRuntime 区分启动初始化拥有者和业务等待者。业务 Session 只等待兼容的启动任务;只有启动页可以创建模型初始化代次。授权和模型阶段分别计时,迟到结果继续由代次隔离。
先增加未初始化业务请求不启动模型、业务请求等待启动任务、取消业务等待不影响启动任务三个测试,并确认红灯。
保留 initialize(...) 和 ensureReady(...) 的公开签名。前者是唯一模型初始化入口;后者仅检查或等待,未启动和失败状态快速返回受控错误。
Session 继续通过 ensureReady(...) 等待模型;不可用时安全关闭弹框。7 个业务页面的成功、结束、取消回调及支付核销逻辑保持不变。
在线授权和模型加载分别计时;模型计时从真正调用模型加载开始。成功、失败、超时只分发一次,迟到结果只记录。
JAVA_HOME=/Users/liang/Library/Java/JavaVirtualMachines/corretto-1.8.0_482/Contents/Home \ sh ./gradlew :app:testDebugUnitTest :app:assembleDebug
验证 Runtime 不持有界面对象、业务等待不启动模型、启动页授权参数有效、弹框不重启应用,并生成 Markdown 与 HTML 变更记录。
ensureReady(...) 错误启动模型,再实施职责分离。ensureReady(...) 现在只检查或等待;initialize(...) 是唯一允许创建模型初始化代次的入口。:app:testDebugUnitTest :app:assembleDebug 执行成功,Debug APK 构建通过。