android-emulator-qa

por openai

Use ao validar fluxos de funcionalidades Android em um emulador com inicialização via adb, entrada, inspeção da árvore de UI, capturas de tela e captura de logcat.

npx skills add https://github.com/openai/plugins --skill android-emulator-qa

Android Emulator QA

Validate Android app flows in an emulator using adb for launch, input, UI-tree inspection, screenshots, and logs.

When to use

  • QA a feature flow in an Android emulator.
  • Reproduce UI bugs by driving navigation with adb input events.
  • Capture screenshots and logcat output while testing.

Quick start

  1. List emulators and pick a serial:
    • adb devices
  2. Build and install the target variant:
    • ./gradlew :<module>:install<BuildVariant> --console=plain --quiet
    • If unsure about task names: ./gradlew tasks --all | rg install
  3. Launch the app:
    • Resolve activity: adb -s <serial> shell cmd package resolve-activity --brief <package>
    • Start app: adb -s <serial> shell am start -n <package>/<activity>
  4. Capture a screenshot for visual verification:
    • adb -s <serial> exec-out screencap -p > /tmp/emu.png

adb control commands

  • Tap (use UI tree-derived coordinates):
    • adb -s <serial> shell input tap <x> <y>
  • Swipe:
    • adb -s <serial> shell input swipe <x1> <y1> <x2> <y2>
    • Avoid edges (start ~150-200 px from left/right) to reduce accidental back gestures.
  • Text:
    • adb -s <serial> shell input text "hello"
  • Back:
    • adb -s <serial> shell input keyevent 4
  • UI tree dump:
    • adb -s <serial> exec-out uiautomator dump /dev/tty

Coordinate picking (UI tree only)

Always compute tap coordinates from the UI tree, not screenshots.

  1. Dump the UI tree to a step-specific file:
    • adb -s <serial> exec-out uiautomator dump /dev/tty > /tmp/ui-settings.xml
  2. Find the target node and derive center coordinates (x y) from bounds:
    • Bounds format: bounds="[x1,y1][x2,y2]"
    • Helper script:
    • python3 <path-to-skill>/scripts/ui_pick.py /tmp/ui-settings.xml "Settings"
  3. If the node is missing and there are scrollable elements:
    • swipe, re-dump, and re-search at least once before concluding the target is missing.
  4. Tap the center:
    • adb -s <serial> shell input tap <x> <y>

UI tree skeleton (helper)

Use this helper to create a compact, readable overview before inspecting full XML.

  1. Dump full UI tree:
    • adb -s <serial> exec-out uiautomator dump /dev/tty > /tmp/ui-full.xml
  2. Generate summary:
    • python3 <path-to-skill>/scripts/ui_tree_summarize.py /tmp/ui-full.xml /tmp/ui-summary.txt
  3. Review /tmp/ui-summary.txt to choose likely targets, then compute exact bounds from full XML.

Logs (logcat)

  1. Clear logs:
    • adb -s <serial> logcat -c
  2. Stream app process logs:
    • Resolve pid: adb -s <serial> shell pidof -s <package>
    • Stream: adb -s <serial> logcat --pid <pid>
  3. Crash buffer only:
    • adb -s <serial> logcat -b crash
  4. Save logs:
    • adb -s <serial> logcat -d > /tmp/logcat.txt

Package shortcuts

  • List installed packages:
    • adb -s <serial> shell pm list packages
  • Filter to your namespace:
    • adb -s <serial> shell pm list packages | rg <company_or_app_id>
  • Confirm the activity resolves before launching:
    • adb -s <serial> shell cmd package resolve-activity --brief <package>

Mais skills de openai

release
openai
Crie um release da Symphony atualizando a versão commitada, fazendo o merge, criando a tag no commit mesclado e verificando o workflow de release do Burrito. Use quando for solicitado a...
signing-entitlements
openai
Inspecione problemas de assinatura, entitlements, runtime protegido e Gatekeeper em aplicativos macOS. Use quando solicitado a diagnosticar falhas de assinatura de código, entitlements ausentes,…
building-ai-agent-on-cloudflare
openai
Constrói agentes de IA na Cloudflare usando o Agents SDK com gerenciamento de estado, WebSockets em tempo real, tarefas agendadas, integração de ferramentas e chat…
epigraphdb-skill
openai
Envie requisições compactas da API EpiGraphDB para ontologia, literatura, MR, gene-droga e evidências de suporte a caminhos. Use quando um usuário desejar resumos concisos do EpiGraphDB.
runtime-behavior-probe
openai
Planeje e execute investigações de comportamento em tempo de execução com scripts de sonda temporários, matrizes de validação, controles de estado e relatórios focados em descobertas. Use apenas quando…
deep-security-scan
openai
Use quando o usuário solicitar uma varredura de segurança Codex Security scan profunda, exaustiva, de múltiplas passagens ou com redução de variância, em todo o repositório ou em caminho específico. Execute repetidas verificações independentes…
define-security-policy
openai
Defina, revise ou atualize as orientações do SECURITY.md para um repositório ou componente. Use quando o usuário quiser esclarecer o que o Codex Security deve revisar, o que está fora…
validation
openai
Use quando o Codex já está na fase de validação de uma varredura de segurança ou quando o usuário pede explicitamente para determinar se uma ou mais descobertas de segurança candidatas…