android_ui_verification
Automated end-to-end UI testing and verification on an Android Emulator using ADB.
Best use case
android_ui_verification is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Automated end-to-end UI testing and verification on an Android Emulator using ADB.
Teams using android_ui_verification should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/android_ui_verification/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How android_ui_verification Compares
| Feature / Agent | android_ui_verification | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Automated end-to-end UI testing and verification on an Android Emulator using ADB.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 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.
Related Skills
android-jetpack-compose-expert
Expert guidance for building modern Android UIs with Jetpack Compose, covering state management, navigation, performance, and Material Design 3.
verification-before-completion
Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evide...
memory-forensics
Master memory forensics techniques including memory acquisition, process analysis, and artifact extraction using Volatility and related tools. Use when analyzing memory dumps, investigating inciden...
malware-analyst
Expert malware analyst specializing in defensive malware research, threat intelligence, and incident response. Masters sandbox analysis, behavioral analysis, and malware family identification.
loki-mode
Multi-agent autonomous startup system for Claude Code. Triggers on "Loki Mode". Orchestrates 100+ specialized agents across engineering, QA, DevOps, security, data/ML, business operations,...
llm-security
LLM and AI application security testing skill for prompt injection, jailbreaking, and AI system vulnerabilities. This skill should be used when testing AI/ML applications for security issues, performing prompt injection attacks, testing LLM guardrails, analyzing AI system architectures for vulnerabilities, or assessing RAG pipeline security. Triggers on requests to test LLM security, perform prompt injection, jailbreak AI systems, test AI guardrails, or audit AI application security.
linux-privilege-escalation
This skill should be used when the user asks to "escalate privileges on Linux", "find privesc vectors on Linux systems", "exploit sudo misconfigurations", "abuse SUID binaries", "ex...
libfuzzer
Coverage-guided fuzzer built into LLVM for C/C++ projects. Use for fuzzing C/C++ code that can be compiled with Clang.
libafl
LibAFL is a modular fuzzing library for building custom fuzzers. Use for advanced fuzzing needs, custom mutators, or non-standard fuzzing targets.
laravel-security-audit
Security auditor for Laravel applications. Analyzes code for vulnerabilities, misconfigurations, and insecure practices using OWASP standards and Laravel security best practices.
k8s-security-policies
Implement Kubernetes security policies including NetworkPolicy, PodSecurityPolicy, and RBAC for production-grade security. Use when securing Kubernetes clusters, implementing network isolation, or ...
insecure-defaults
Detects fail-open insecure defaults (hardcoded secrets, weak auth, permissive security) that allow apps to run insecurely in production. Use when auditing security, reviewing config management, or analyzing environment variable handling.