Agentic Awesome Skills 的 android_ui_verification 技能:基于 ADB 的 Android 模拟器端到端 UI 自动化验证指南
AI 技能AI 插件【免费下载链接】agentic-awesome-skillsAAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,400 agentic skills. Includes CLI, local MCP, catalog, plugins, and Workbench.项目地址https://gitcode.com/gh_mirrors/an/agentic-awesome-skills点击查看免费下载在 Agentic Awesome Skills 仓库中android_ui_verification是一个面向 React Native 与原生 Android 应用的端到端 UI 自动化验证技能它不依赖任何测试框架仅通过 ADB 命令即可驱动模拟器完成查看界面 → 计算坐标 → 模拟交互 → 截图与日志验证的完整闭环。本文将以该技能文档为核心结合仓库内配套的自动化脚本与其在项目目录、变更日志中的元数据记录为你讲解这套方法的每一步命令、底层原理与最佳实践读完即可在本地模拟器上复现 Agent 自主执行 UI 验证的完整工作流。技能定位与适用场景android_ui_verification的核心思路是把 Android 模拟器当作一个可以被命令行完全操控的黑盒用adb这一 Android 官方调试桥完成观察状态、执行操作、确认结果的循环。其 frontmatter 元数据表明该技能为source: community社区贡献、risk: safe安全风险等级为安全并记录于 CHANGELOG.md由社区成员 alexmvie 贡献。根据 SKILL.md 的定义该技能适合在以下场景中使用验证 React Native 或原生 Android 应用的 UI 变更对布局问题或交互类 Bug 进行自主调试在人工测试成本过高时快速确认功能是否正常为 PR 文档自动捕获界面截图。它尤其适合需要无人值守回归的 Agent 场景——Agent 可以自行启动模拟器、执行命令、保存证据并把结果整理进 PR 说明。前置条件技能运行前需要满足三项基础条件缺一不可Android 模拟器正在运行——所有命令都作用在已启动的设备上adb已安装并加入 PATH——adb是 Android SDK Platform-Tools 的核心命令应用以 debug 模式构建——只有 debug 包才会输出ReactNativeJS相关的 JS 控制台日志到logcat后续的分析验证步骤依赖这一点。提示可在执行任何操作前先运行adb devices确认设备在线且无unauthorized状态避免后续命令全部落空。完整工作流四步闭环验证技能文档将整个验证过程划分为四个阶段从校准设备开始到输出可归档的证据结束。1. 设备校准Device Calibration模拟器界面通常会做逻辑分辨率缩放直接猜测坐标很容易点错位置。因此第一步永远是校准屏幕尺寸adb shell wm size命令会返回类似Physical size: 1080x2400的输出。文档特别强调布局往往是经过缩放的必须以此处返回的物理尺寸作为坐标计算基准而不是想当然地使用 App 内部 DP 单位。2. UI 检查State Discovery通过uiautomator工具导出当前界面的控件层级即可拿到所有 UI 元素的精确位置adb shell uiautomator dump /sdcard/view.xml adb pull /sdcard/view.xml ./artifacts/view.xmluiautomator dump会在设备端生成当前窗口的视图层级 XML默认也可输出到/sdcard/window_dump.xmladb pull将其拉取到宿主机的./artifacts/目录归档。随后在view.xml中检索text文本内容、content-desc无障碍描述或resource-id资源 ID来定位目标元素其中最关键的属性是bounds——它形如[x1,y1][x2,y2]直接定义了该元素的可点击区域矩形。这是整个流程的眼睛只有拿到准确的 bounds后续的点击才能命中。3. 交互命令Interaction Commands拿到坐标后用adb shell input系列命令模拟用户操作操作命令说明点击adb shell input tap x y使用元素 bounds 的中心点滑动adb shell input swipe x1 y1 x2 y2 duration_ms用于滚动列表等场景最后一个参数为持续毫秒数文本输入adb shell input text message注意对特殊字符支持有限建议只输入纯字母数字按键事件adb shell input keyevent code_id例如66对应 Enter回车确认常见 keyevent 码还包括4返回键、3Home 键、67删除/退格、61Tab 切换焦点。这些编码是 Android 框架层KeyEvent.KEYCODE_*常量在input keyevent命令中的十进制表示。4. 验证与报告Verification Reporting交互完成后技能提供视觉 分析双通道验证并规定产物统一归档视觉验证截图对比adb shell screencap -p /sdcard/screen.png adb pull /sdcard/screen.png ./artifacts/test_result.png-p参数指定输出 PNG 格式。截图可被用于人工复核或作为 PR 文档中的界面证据配合交互前截图还能进行像素级的视觉回归比对。分析验证日志审查adb logcat -d | grep ReactNativeJS | tail -n 20实时抓取 JS 控制台输出-d表示 dump 当前缓冲区后退出而非持续跟踪grep ReactNativeJS过滤 React Native 运行时的日志标签tail -n 20只保留最近 20 行用于快速确认操作成功或定位抛错。清理与归档所有生成文件view.xml、截图、日志必须存放在artifacts/目录以满足项目的组织规范也便于 Agent 后续把证据附到提交或 PR 中。配套脚本verify_ui.sh 的自动化封装仓库为该技能提供了可直接调用的辅助脚本 scripts/verify_ui.sh它将上述手动命令封装成一个原子操作一次调用即可产出全套验证产物# 用法./verify_ui.sh [截图文件名] ./verify_ui.sh my_test_screen脚本执行逻辑与 SKILL.md 文档流程一一对应自动创建./artifacts目录若不存在执行adb shell wm size完成屏幕校准并打印分辨率执行uiautomator dump导出 UI 层级并adb pull到artifacts/view.xml执行screencap -p截图并保存为artifacts/截图名.png默认名latest_screen.png抓取最近 20 行ReactNativeJS日志写入artifacts/js_logs.txt。整个脚本把校准 → 检查 → 截图 → 日志串成一行命令非常适合在 CI 前置脚本或 Agent 工作流中作为验证前快照采集器调用且与文档约定保持完全一致。最佳实践让自动化验证更可靠技能文档总结了四条经过实践检验的经验直接决定了验证的稳定性与可调试性等待动画结束交互与验证之间务必加入 12 秒的sleep避免在页面转场或动画播放中途截图导致断言误判点击取中心点对[x1,y1][x2,y2]计算算术平均值((x1x2)/2, (y1y2)/2)作为点击坐标这是最可靠的目标命中策略埋设日志标记在业务代码中使用特征明显的日志如✅ Action Successful让grep验证变得一目了然——这也与上文的logcat | grep ReactNativeJS一脉相承快速失败Fail Fast若uiautomator dump失败或找不到预期文本应立即停下排查如检查界面是否在异常页面、元素是否被遮挡而不是盲目盲点。盲目点击会把单点失败扩散成难以定位的连锁问题。局限性与使用边界技能文档同样明确了它的边界使用时应保持清醒该技能只在任务范围与上述描述明确匹配时使用不要随意扩大到不相关的场景自动化产物不能替代面向具体环境的验证、正式测试或专家评审——模拟器通过不代表真机、灰度或生产环境行为一致当所需输入、权限、安全边界或成功标准缺失时应停下来向用户确认而不是擅自猜测继续执行。此外从技能元数据risk: safe与分类category: test-automation见 apps/web-app/public/skills.json.backup可以看到它在项目中被归类为安全的测试自动化技能支持 codex 与 claude 两类 Agent 目标平台。延伸阅读技能主文档plugins/agentic-awesome-skills-claude/skills/android_ui_verification/SKILL.md同内容镜像副本plugins/agentic-awesome-skills/skills/android_ui_verification/SKILL.md配套自动化脚本plugins/agentic-awesome-skills-claude/skills/android_ui_verification/scripts/verify_ui.sh技能发布记录CHANGELOG.md全量技能目录索引CATALOG.md赞分享AI 技能AI 插件【免费下载链接】agentic-awesome-skillsAAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,400 agentic skills. Includes CLI, local MCP, catalog, plugins, and Workbench.项目地址https://gitcode.com/gh_mirrors/an/agentic-awesome-skills点击查看免费下载相关推荐Agentic Awesome Skills 实战基于 Rube MCP 的 ActiveCampaign 自动化技能深度指南Agentic Awesome Skills 实战基于 Rube MCP 的 ActiveCampaign 自动化技能深度指南 ActiveCampaignAI 技能AI 插件awesome-codex-skills基于 Rube MCP 的 Emaillistverify 邮箱验证自动化技能实战指南awesome codex skills基于 Rube MCP 的 Emaillistverify 邮箱验证自动化技能实战指南 本篇技术指南围绕 emaillAI 技能AI 插件工作流自动化人工智能Apache Airflow DAG 模式实战指南基于 agentic-awesome-skills 的技能化实现Apache Airflow DAG 模式实战指南基于 agentic awesome skills 的技能化实现 Apache Airflow 是业界最主流AI 技能AI 插件创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考