1. Prerequisites
- Android SDK Platform Tools on PATH — provides
adb. - Android Emulator on PATH — needed to boot AVDs. If you will only use an already-running emulator or a physical device, adb alone is sufficient.
- An AVD created via Android Studio or
avdmanager create avd.
Verify with adb version and emulator -list-avds.
2. Setup
- Find a ready device — call
list-devices. Filter for entries withplatform: "android". Ready devices (state: "device") come first. Pick the firstserial(e.g.emulator-5554) unless the user specified one. - Boot if needed — if nothing Android is ready, call
boot-devicewithavdName: <name>from the same call'savdslist. The tool transparently picks hot vs cold boot: it probes the AVD'sdefault_bootsnapshot, restores it under a tight deadline when usable, and falls back to a full cold boot otherwise. Hot path is typically ~30s; cold path takes 2–10 min. On any stage failure the tool kills the emulator process it started so your next call starts from a clean state. - Metro (for React Native) — once a device is up, run
adb -s <serial> reverse tcp:8081 tcp:8081so the device can reach Metro on your host. Repeat if the device restarts. See theargent-metro-debuggerskill.
3. Using the device
Pass the Android serial as udid to the unified interaction tools — gesture-tap, gesture-swipe, describe, screenshot, launch-app, keyboard, etc. Dispatch is automatic based on the id shape. See argent-device-interact for platform-neutral interaction tooling and the Android-specific gotchas section at the bottom of that skill.
4. Notes
- Serials are the adb device id. iOS UDIDs and Android serials are not interchangeable, but you do NOT need to tell the tools which platform — dispatch is automatic.
describeon Android returns a shallower tree than iOS (no accessibility-service equivalent), but covers most tap-target discovery.reinstall-appon Android always installs with-gso first-launch runtime permissions are pre-granted.- To stop the emulator, run
adb -s <serial> emu killfrom a shell (clean shutdown). Neverpkill -9/kill -9qemu — a hard kill leaves the userdata image dirty, after which cold boots can hang for many minutes doing recovery (runaway writes,boot_completednever flips). If an image gets into that state, boot once with-wipe-datato reset it.

