关于 android_ui_verification
面向 React Native 和原生 Android 应用的 UI 验证技能,使用 ADB 在 Android 模拟器上检查界面状态、交互和截图。适合开发者自动排查布局与交互问题,并留存验证材料。
主要功能
- 01通过 uiautomator 检查界面元素
- 02使用 ADB 执行点击、滑动和输入
- 03截图验证界面变化
- 04查看 ReactNativeJS 日志
- 05将验证文件保存到 artifacts/
适用场景
- 01验证 React Native 或原生 Android 的 UI 改动
- 02排查布局和交互问题
- 03生成用于 PR 文档的自动截图
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill android_ui_verification安装后在 Claude Code 中输入/android_ui_verification确认已加载。
附带文件scripts/verify_ui.sh
详细介绍
Android UI 验证技能
此技能提供了一套系统化方法,可使用 ADB 命令在 Android 模拟器上测试 React Native 应用。它支持自主交互、状态验证和视觉回归检查。
使用场景
- 验证 React Native 或原生 Android 应用中的 UI 更改。
- 自主调试布局问题或交互故障。
- 手动测试耗时过长时,确保功能正常。
- 为 PR 文档自动截取屏幕截图。
🛠 前提条件
- Android 模拟器正在运行。
- 已安装
adb,且位于 PATH 中。 - 应用处于调试模式,以便访问 logcat。
🚀 工作流
1. 设备校准
使用 adb devices -l 选择已授权的模拟器序列号;存在多个设备时,在每条命令中传入 -s SERIAL。开始交互前,检查当前显示屏的几何信息和 UI 边界,确保点击坐标准确。
adb shell wm size
注意:尺寸覆盖、密度、旋转和内边距都会影响输入坐标。请优先获取实际所选显示屏上的最新 UI 边界,而不要仅根据物理尺寸推算坐标。
2. UI 检查(状态发现)
使用 uiautomator 转储查找 UI 元素(按钮、输入框)的精确边界。
adb shell uiautomator dump /sdcard/view.xml && adb pull /sdcard/view.xml ./artifacts/view.xml
在 view.xml 中搜索 text、content-desc 或 resource-id。bounds 属性 [x1,y1][x2,y2] 定义了可点击区域。
3. 交互命令
- 点击:
adb shell input tap <x> <y>(使用元素边界的中心点)。 - 滑动:
adb shell input swipe <x1> <y1> <x2> <y2> <duration_ms>(用于滚动)。 - 文本输入:
adb shell input text "<message>"(注意:对特殊字符的支持有限)。 - 按键事件:
adb shell input keyevent <code_id>(例如,66 表示 Enter)。
4. 验证与报告
视觉验证
交互后截取屏幕截图,以确认 UI 更改。
adb shell screencap -p /sdcard/screen.png && adb pull /sdcard/screen.png ./artifacts/test_result.png
分析验证
实时监控 JS 控制台日志,以检测错误或确认成功。
adb logcat -d | grep "ReactNativeJS" | tail -n 20
清理
始终将生成的文件存放在 artifacts/ 文件夹中,以遵守项目组织规则。
💡 最佳实践
- 等待状态:在有限的超时时间内轮询预期的 UI 状态;仅设置固定延迟并不能验证状态。
- 点击中心点:计算
[x1,y1][x2,y2]的算术平均值,以获得最可靠的点击目标。 - 日志标记:在代码中使用醒目的日志消息(例如,
✅ Action Successful),便于通过grep验证。 - 快速失败:如果
uiautomator dump失败或未找到预期文本,请停止操作并排查问题,不要盲目点击。
限制
- 仅当任务明确符合上述范围时,才使用此技能。
- 不要将输出视为环境专属验证、测试或专家审查的替代品。
- 如果缺少必要输入、权限、安全边界或成功标准,请停止并请求澄清。
捆绑的辅助工具示例
在此技能的目录中,选择已授权的模拟器后,运行 ANDROID_SERIAL=emulator-5554 bash scripts/verify_ui.sh login-screen。请将示例序列号替换为已验证设备的序列号。此辅助工具不会执行任何操作,只会捕获 artifacts/view.xml、artifacts/login-screen.png 和近期 JS 日志;它不会断言登录流程已通过。请根据预期 UI 检查捕获的状态;如果产物包含个人数据,请妥善保密。