目标
1、 屏外文字标签识别阶段不加 Rect(0,0,screenWidth,screenHeight) 的区域限制,但保持仅在当前 APP 的无障碍树内遍历。
2、简化识别逻辑、减少内存占用;识别后的滑动与后续处理保持不变。
修改点
1、移除全屏文本聚合的 StringBuilder,避免拼接全量文本造成内存消耗。
2、使用 matchedAny 记录是否存在任意关键词命中,替代对全屏文本的二次匹配。
在遍历时:
1)、保持包名过滤,防止跨应用节点被识别。
2)、优先提取精确命中坐标(exactCoord),命中后立即停止递归,降低遍历开销。
3)、若无精确命中,记录首个部分命中坐标(partialCoord)。
4)、滑动与校正后的重遍历逻辑未改动。
代码参考
1、删除 allTexts
2、 引入 matchedAny
3、exact 命中后短路返回
4、matched = baseCoord != null || matchedAny
效果
1、不限制区域(无 Rect 限制),但仅在当前 APP 节点树内识别。
2、内存占用更低,遍历开销更小;保持识别成功后滑动校正逻辑原样运行。
3、 行为与普通文字识别的“不限制区域”一致,同时避免误识别桌面或系统层文字。
