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 -n 20
清理

始终将生成的文件存储在 artifacts/ 文件夹中,以满足项目组织规则。

💡 最佳实践

  • 等待动画:在交互和验证之间总是添加一个短暂的等待(例如 1-2 秒)。
  • 中心抽头:计算 [x1,y1][x2,y2] 的算术平均值,以获得最可靠的抽头目标。
  • 日志标记:在代码中使用不同的日志消息(例如,✅ 操作成功)以便于使用 grep 进行验证。
  • 快速失败:如果 uiautomator dump 失败或未找到预期的文本,请停止并进行排查,而不是盲目点击。

限制

  • 仅当任务明确符合上述描述的范围时,才使用此技能。
  • 不要将输出视为环境特定验证、测试或专家审查的替代品。
  • 如果缺少所需的输入、权限、安全界限或成功标准,请停下来并要求澄清。
Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐