android-emulator-automation
Use semantic ADB and UIAutomator workflows to inspect, launch, and interact with Android apps from agents.
What this skill does
# Android Emulator Automation ## When To Use - Use this skill when the request is about: android emulator automation, adb semantic ui automation, uiautomator dump and tap. - Primary outcome: Use semantic ADB and UIAutomator workflows to inspect, launch, and interact with Android apps from agents. - Reach for this skill when an agent needs to launch an APK, inspect the current screen, or perform a deterministic interaction without writing Espresso or Compose UI tests. - Handoff skills when the scope expands: - `android-testing-ui` - `android-permissions-activity-results` ## Workflow 1. Verify the Android SDK, `adb`, the target device or emulator, and boot completion before attempting interaction. 2. Install or launch the target app with explicit package awareness so the request stays tied to the right artifact. 3. Dump the current UI hierarchy and prefer semantic selectors such as text, content description, or resource ID over raw coordinates. 4. Perform the smallest interaction that proves the workflow and re-dump the screen when state changes matter. 5. Hand off long-lived regression coverage to UI tests once the automation path is understood. ## Guardrails - Prefer semantic selectors to pixel coordinates; only fall back to coordinates when the UI tree is missing the required metadata. - Treat automation as an inspection and smoke tool, not a replacement for deterministic UI tests. - Verify device state, package name, and boot completion before issuing input commands. - Keep the scripts safe for CI by avoiding destructive shell commands or device-wide settings changes. ## Anti-Patterns - Hard-coding coordinates when text or resource IDs are available. - Running emulator commands before the device is boot-complete. - Treating flaky one-off automation as proof of a stable UI workflow. - Mixing app install, interaction, and log scraping into one opaque script with no intermediate output. ## Examples ### Happy path - Scenario: Build the Compose fixture, install it on an emulator, and dump the current OrbitTasks screen. - Command: `bash skills/android-emulator-automation/scripts/run_examples.sh` ### Edge case - Scenario: Launch a preinstalled app and target a single semantic control without relying on screen coordinates. - Command: `python3 skills/android-emulator-automation/scripts/navigator.py --find-text "Blocked" --tap` ### Failure recovery - Scenario: Confirm the device is discoverable and UIAutomator can dump the hierarchy before chasing a selector bug. - Command: `python3 skills/android-emulator-automation/scripts/device_health.py --json` ## Done Checklist - The target package, device serial, and current screen are explicit. - Semantic selectors were preferred over coordinates. - The automation path is reproducible in local development and CI. - The request hands off to UI testing when the workflow needs regression coverage. ## Official References - [https://developer.android.com/studio/run/emulator](https://developer.android.com/studio/run/emulator) - [https://developer.android.com/tools/adb](https://developer.android.com/tools/adb) - [https://developer.android.com/training/testing/other-components/ui-automator](https://developer.android.com/training/testing/other-components/ui-automator) - [https://developer.android.com/studio/test/command-line](https://developer.android.com/studio/test/command-line)
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.