了解 Android 自动化何时应使用 UI 选择器、OCR、模板匹配或对象检测,以及在视觉证据不确定时如何安全停止。 莱彩投屏.

视觉自动化始于决策,而不是点击
当工作流程假设下一个按钮始终位于同一坐标时,Android 自动化会变得脆弱。移动屏幕会随着设备尺寸、语言、字体大小、键盘状态、权限、网络计时和应用程序更新而变化。更安全的工作流程首先观察当前屏幕,选择证据,检查结果是否足够好,然后才执行操作。这种观察-选择-行动模式是可视化 UI 自动化的基础。
来彩流中,UI解析、UI查找、OCR、模板匹配、物体检测等观察节点不会自行点击。他们返回结构化结果。单独的数据步骤可以选择最佳项目,指针步骤可以点击其中心。这种分离使得图表可以审查,并防止识别结果默默地变成一个动作。
对于来彩屏幕镜像,有用的承诺并不是完美的识别。它是一个可见的 Android 自动化工作流程,团队可以在其中检查屏幕截图、识别输出、阈值、日志、分支和停止条件,然后再在授权设备或模拟器上重复任务。
当结构可靠时,在 OCR 之前选择 UI 选择器
Android 的可访问性和 UI 层次结构可以公开文本、内容描述、边界、类名和其他结构化属性。当目标可靠地出现在该层次结构中时,UI 选择器通常比 OCR 或图像匹配更容易维护。它可以在不同的主题、微小的颜色变化和不同的像素密度下保持有用。
首先检查当前的UI树。搜索稳定文本或内容描述,然后在点击之前过滤或选择结果。不要假设诸如“查找可见文本”之类的短语一定意味着 OCR;屏幕证据应该决定。当应用程序公开有意义的结构时,结构化选择器是更好的选择。
选择器仍然有限制。画布视图、游戏、流式表面、自定义渲染和某些 WebView 可能会暴露很少有用的层次结构。翻译后的标签也会发生变化。当目标对人可见但不存在于 UI 树中时,OCR 或图像识别将成为合理的后备工具,而不是默认的第一个工具。
当文本可见但选择器不可用时使用 OCR
当业务含义由可见单词承载时,OCR 非常有用:订单状态、本地化标签、确认消息、错误横幅、价格、测试帐户名称或搜索结果。 Flow 可以捕获屏幕、读取有界区域或全帧、标准化结果,并在继续之前将其与预期文本进行比较。
OCR是概率性的。小字体、压缩、渐变、动画、异常脚本、低对比度和重叠控件会降低准确性。当布局、方向、键盘或区域设置发生变化时,固定区域也可能会错过目标。因此,来彩将可重用的 OCR 区域视为显性资产;创建固定区域需要用户理解该位置假设。
可靠的检查会记录识别的文本和用于生成文本的屏幕截图。在可用的情况下使用最小置信度规则,接受一小组合法变体,并在缺少所需文本时以可读的原因停止。切勿将低置信度 OCR 结果直接转换为破坏性点击。
对稳定的视觉目标使用模板匹配
当稳定的视觉目标没有可靠的文本或 UI 选择器时,模板匹配是合适的:独特的图标、徽章、游戏控件、自定义确认图形或纯图像按钮。模板应来自真实捕获的屏幕,并且流程应引用现有资产,而不是发明文件或目标。
匹配质量取决于裁剪质量、比例、主题、颜色模式、动画和搜索区域。紧密的模板可能是独特的,但也很脆弱;广泛的收获可以包括不断变化的内容。团队应该测试不止一种真实的设备状态,并保持阈值足够高,以避免不相关的匹配,同时又不会导致正常变化。
当前来财资产上下文确认模板是可重用的命名资产,并且匹配支持分数、模式和屏幕比例搜索区域。本文并未声称一个模板在任何地方都适用。深色模式、本地化、响应式布局或重新设计可能需要选择器、另一个模板或有意停止。
对象检测解决了不同的问题
对象检测不是 OCR 的更强版本。它回答了一个不同的问题:经过训练的类的实例(例如人、车辆或特定于产品的对象)在哪里? OCR 提取文本;模板匹配寻找视觉相似性;检测发现模型定义的类。
仅当可用模型包含工作流所需的类时才使用检测。 Flow 必须读取模型元数据和类列表,而不是猜测标签。在任何指针操作之前,检测输出仍然需要选择逻辑,例如最高置信度、最近中心或高于阈值的所有项目。
对于普通应用按钮、UI 选择器、OCR 或模板通常更简单。检测对于外观或位置发生变化的可变对象非常有用。当置信度、类别或计数不满足工作流程的期望时,它仍然应该留下证据并停止。
构建安全的观察-选择-行动流程
安全流程可以表示为六个可见阶段:捕获状态、检查 UI 结构、选择适当的识别方法、选择结果、验证置信度或业务含义以及行动。操作完成后,明确等待屏幕稳定并再次观察。
考虑本地化 QA 检查。打开暂存版本,等待主屏幕,使用稳定选择器导航,捕获翻译的屏幕,在标题上运行 OCR,保存屏幕截图,如果不存在预期的本地化短语,则停止。该流程在不改变生产数据的情况下产生证据。
保持故障处理保守。如果 UI 查找未返回任何项目、OCR 错过所需文本、模板分数太低或检测发现意外计数,则让流程失败或分支到明确的证据并停止路径。不要在不可见的重试循环中将失败发送回相同的操作。
在不隐藏不确定性的情况下排除识别故障
当识别失败时,首先检查屏幕截图和原始结果,而不是降低每个阈值。确认应用程序位于预期页面上,键盘或权限对话框未覆盖目标,等待时间足够长,并且搜索区域包含该元素。
对于 OCR,比较脚本、间距、标点符号、大写和可能的字符替换。对于模板,检查比例、主题、裁剪和竞争匹配。对于 UI 查找,检查目标是否在屏幕外或从层次结构中隐藏。为了进行检测,请验证所选模型及其实际类别列表。
一次更改一个变量,并在可能的情况下重新运行只读探测。较低的阈值可能会增加召回率,但也会增加误报。较大的区域可能会找到目标,但会带来干扰。正确的结果不是“节点通过”;这是足够有力的证据,足以支持下一步批准的行动。
QA、本地化和支持的实用工作流程
QA 团队可以使用视觉检查来检查烟雾路径、错误横幅、同意对话框、屏幕截图和发布证据。本地化团队可以跨设备和语言比较标题、截断的标签、缺失的翻译和意外的后备文本。支持团队可以重现报告的路径并向开发人员提供屏幕截图和日志。
这些工作流程补充了代码级单元、仪器和集成测试;他们不会取代他们。视觉检查对于人们看到的渲染状态特别有用,而代码级测试对于内部逻辑和确定性断言仍然更好。
使用AI Android自动化工具概述、来财流程指南、Android屏幕镜像指南和移动应用测试工作流程作为下一个阅读路径。
首次实际运行前的检查清单
首次实际运行前,确认设备和应用程序已授权,启动状态明确,并且工作流不会猜测包、资产、坐标或模型类。检查每个识别结果是否都是经过精心选择的,敏感操作是否需要严格的条件或人工审核。
验证屏幕截图和日志不会泄露私人客户数据。在付款、删除、帐户设置、出站消息或不可逆转的生产更改之前添加明确的停止边界。避免虚假参与、垃圾邮件、帐户滥用、规则规避、私人数据抓取和游戏作弊。
最后,观看镜像 Android 屏幕的首次运行。一起查看图表、UI 状态、OCR 文本、匹配分数、所选边界、屏幕截图和停止原因。可靠的 Android OCR 和图像识别自动化来自可检查的证据,而不是信心剧场。