目标设备在识别页出现明显卡顿。排查到的 ANR 主线程栈为:DishRecognitionActivity.updateAutoPayReadyState → AiSdkManager.readStoredRuntimeConfig → YingeoAiSDKBase.isSupportTurboMode → BufferedReader.readLine / FileInputStream.read。识别结果处理反复读取完整运行配置,而完整配置解析会查询 SDK Turbo 能力;该查询在设备上发生阻塞文件 I/O。日志同时出现大量跳帧。
AiSdkManager 增加仅解析已存储业务模式的 readStoredBusinessMode(),不读取模型和速度,也不调用 SDK 能力探测。./gradlew :app:testDebugUnitTest :app:assembleDebug --no-daemon --quiet:通过。git diff --check:通过。DishRecognitionActivity 已不再调用 readStoredRuntimeConfig(),识别结果路径不再触发 isSupportTurboMode()。尚未安装新 APK,因此不能宣称真机卡顿已经消失。目标设备仍需在相同餐具识别画面连续运行,观察主线程跳帧、ANR、GC 频率和支付状态。摄像头每帧分配 NV21 数组与识别框重建是额外性能压力,但本次 ANR 堆栈未将它们指认为主线程阻塞点;本次不调整摄像头帧所有权和识别时序,以免引入帧数据复用或丢帧风险。若新包仍有轻微掉帧,再用真机数据定位该部分。
AiRuntimeConfig.java、AiSdkManager.java、DishRecognitionActivity.javaAiRuntimeConfigTest.java