人脸识别运行时封装与异常白屏修复变更记录

1. 变更原因

FaceRecognitionPop 同时承担模型初始化、数据库装载、相机识别、倒计时、UI 和异常恢复。模型初始化失败时,弹框会重新启动应用入口并结束当前进程,导致白屏、返回首页,以及菜单消费内存订单丢失。

本次在不改变现有业务和现有交互的前提下,将模型初始化和单次相机会话从弹框拆出,并删除业务弹框内的应用重启及杀进程行为。

2. 实施边界

3. 源码变更

新增 FaceRecognitionRuntime

新增:

实现内容:

兼容调整 LaunchActivity

修改:

实现内容:

新增 FaceRecognitionSession

新增:

实现内容:

兼容式重构 FaceRecognitionPop

修改:

实现内容:

4. 测试变更

新增:

覆盖内容:

测试采用先失败、再实现、再转为通过的红绿流程。

5. 自动验证结果

执行命令:

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

结果:

静态业务检查:

6. 业务影响判断

正常业务流程保持不变:

修复后的异常流程:

7. 真机待验项

以下硬件行为无法由本地 JVM 和 APK 构建证明,仍需设备验收:

8. Git 状态