人脸识别初始化请求兼容性修复实施计划

目标:修复业务人脸弹框先发起模型初始化后,启动页错误复用该任务并继承其授权模式和剩余超时时间的问题。
执行状态:源码实施和自动验证已完成;真机授权、模型加载、摄像头及识别链路待验。

架构

FaceRecognitionRuntime 区分启动初始化拥有者和业务等待者。业务 Session 只等待兼容的启动任务;只有启动页可以创建模型初始化代次。授权和模型阶段分别计时,迟到结果继续由代次隔离。

任务 1:回归测试

先增加未初始化业务请求不启动模型、业务请求等待启动任务、取消业务等待不影响启动任务三个测试,并确认红灯。

任务 2:Runtime 职责分离

保留 initialize(...)ensureReady(...) 的公开签名。前者是唯一模型初始化入口;后者仅检查或等待,未启动和失败状态快速返回受控错误。

任务 3:Session 与业务兼容

Session 继续通过 ensureReady(...) 等待模型;不可用时安全关闭弹框。7 个业务页面的成功、结束、取消回调及支付核销逻辑保持不变。

任务 4:分阶段超时

在线授权和模型加载分别计时;模型计时从真正调用模型加载开始。成功、失败、超时只分发一次,迟到结果只记录。

任务 5:验证与记录

JAVA_HOME=/Users/liang/Library/Java/JavaVirtualMachines/corretto-1.8.0_482/Contents/Home \
sh ./gradlew :app:testDebugUnitTest :app:assembleDebug

验证 Runtime 不持有界面对象、业务等待不启动模型、启动页授权参数有效、弹框不重启应用,并生成 Markdown 与 HTML 变更记录。

执行结果