name: android_ui_verification
description: Automated end-to-end UI testing and verification on an Android Emulator using ADB.
risk: safe
source: community
date_added: “2026-02-28”
Android 用户界面验证技能
此技能提供了一种使用 ADB 命令在 Android 模拟器上测试 React Native 应用程序的系统方法。它允许进行自主交互、状态验证和视觉回归检查。
何时使用
- 在 React Native 或原生 Android 应用中验证 UI 更改。
- 自动调试布局问题或交互错误。
- 当手动测试太慢时,确保功能正常。
- 捕获自动化截图用于 PR 文档。
🛠 前置条件
- Android 模拟器正在运行。
adb已安装并已添加到 PATH。- 在调试模式下的应用,以便访问 logcat。
🚀 工作流程
1. 设备校准
在进行互动之前,请始终验证屏幕分辨率以确保点击坐标准确。
adb shell wm size注意:布局通常会被缩放。请使用返回的物理尺寸作为坐标计算的基础。
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>(例如,Enter 键为 66)。
4. 验证与报告
视觉验证
在交互后截取屏幕截图以确认界面变化。
adb shell screencap-p/sdcard/screen.png&&adb pull /sdcard/screen.png ./artifacts/test_result.png分析验证
实时监控 JS 控制台日志,以检测错误或记录成功信息。
adb logcat-d|grep"ReactNativeJS"|tail-n20清理
始终将生成的文件存储在artifacts/文件夹中,以满足项目组织规则。
💡 最佳实践
- 等待动画:在交互和验证之间总是添加一个短暂的等待(例如 1-2 秒)。
- 中心抽头:计算
[x1,y1][x2,y2]的算术平均值,以获得最可靠的抽头目标。 - 日志标记:在代码中使用不同的日志消息(例如,
✅ 操作成功)以便于使用grep进行验证。 - 快速失败:如果
uiautomator dump失败或未找到预期的文本,请停止并进行排查,而不是盲目点击。
限制
- 仅当任务明确符合上述描述的范围时,才使用此技能。
- 不要将输出视为环境特定验证、测试或专家审查的替代品。
- 如果缺少所需的输入、权限、安全界限或成功标准,请停下来并要求澄清。