Skip to main content

android-ui-verification

Automated end-to-end UI testing and verification on an Android Emulator using ADB.

Jump to install

Source facts

Repository
bouclem/skills
Last source activity
May 24, 2026 at 16:04
Detected SKILL.md language
English
Stars
7
Forks
1

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
2 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
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 UI Verification Skill This skill provides a systematic approach to testing React Native applications on an Android emulator using ADB commands. It allows for autonomous interaction, state verification, and visual regression checking. ## When to Use - Verifying UI changes in React Native or Native Android apps. - Autonomous debugging of layout issues or interaction bugs. - Ensuring feature functionality when manual testing is too slow. - Capturing automated screenshots for PR documentation. ## 🛠 Prerequisites - Android Emulator running. - `adb` installed and in PATH. - Application in debug mode for logcat access. ## 🚀 Workflow ### 1. Device Calibration Before interacting, always verify the screen resolution to ensure tap coordinates are accurate. ```bash adb shell wm size ``` *Note: Layouts are often scaled. Use the physical size returned as the base for coordinate calculations.* ### 2. UI Inspection (State Discovery) Use the `uiautomator` dump to find the exact bounds of UI elements (buttons, inputs). ```bash adb shell uiautomator dump /sdcard/view.xml && adb pull /sdcard/view.xml ./artifacts/view.xml ``` Search the `view.xml` for `text`, `content-desc`, or `resource-id`. The `bounds` attribute `[x1,y1][x2,y2]` defines the clickable area. ### 3. Interaction Commands - **Tap**: `adb shell input tap <x> <y>` (Use the center of the element bounds). - **Swipe**: `adb shell input swipe <x1> <y1> <x2> <y2> <duration_ms>` (Used for scrolling). - **Text Input**: `adb shell input text "<message>"` (Note: Limited support for special characters). - **Key Events**: `adb shell input keyevent <code_id>` (e.g., 66 for Enter). ### 4. Verification & Reporting #### Visual Verification Capture a screenshot after interaction to confirm UI changes. ```bash adb shell screencap -p /sdcard/screen.png && adb pull /sdcard/screen.png ./artifacts/test_result.png ``` #### Analytical Verification Monitor the JS console logs in real-time to detect errors or log successes. ```bash adb logcat -d | grep "ReactNativeJS" | tail -n 20 ``` #### Cleanup Always store generated files in the `artifacts/` folder to satisfy project organization rules. ## 💡 Best Practices - **Wait for Animations**: Always add a short sleep (e.g., 1-2s) between interaction and verification. - **Center Taps**: Calculate the arithmetic mean of `[x1,y1][x2,y2]` for the most reliable tap target. - **Log Markers**: Use distinct log messages in the code (e.g., `✅ Action Successful`) to make `grep` verification easy. - **Fail Fast**: If a `uiautomator dump` fails or doesn't find the expected text, stop and troubleshoot rather than blind-tapping. ## Limitations - Use this skill only when the task clearly matches the scope described above. - Do not treat the output as a substitute for environment-specific validation, testing, or expert review. - Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
View on GitHub