Skip to content

Devices

A device here is an Android Virtual Device (AVD) on your Mac. The page shows one device at a time.

The list on the left shows every AVD that emulator -list-avds reports. For each one it shows:

  • the name;
  • the screen resolution;
  • the Android version;
  • the state: not running, booting (with seconds elapsed), running, or running but cannot be taken over;
  • a start or stop button.

Resolution, RAM and Android version come from each AVD’s config.ini in ~/.android/avd/<name>.avd/. If you set ANDROID_AVD_HOME, the gateway reads that directory instead. If a field is missing from config.ini, it is left blank.

Click start next to a device. The gateway runs:

Terminal window
emulator -avd <name> -no-window -grpc <port> -no-boot-anim -gpu host
  • -no-window means no separate emulator window opens. The screen appears only in the page.
  • The gRPC port is the first free even port from 8554 upward.
  • The device counts as booted when adb -s emulator-<serial> shell getprop sys.boot_completed returns 1. The page shows progress until then.
  • If the device has not booted after 180 seconds, the start fails and the gateway ends the emulator process.

Clicking start again while a device is booting does not start a second copy. If you close the page during boot and open it again, the progress continues.

Click stop. The gateway runs adb -s emulator-<serial> emu kill.

The gateway finds running emulators through the files the emulator writes in ~/Library/Caches/TemporaryItems/avd/running/. If an emulator is running with gRPC enabled, for example one you started with -grpc <port>, the gateway connects to it instead of starting another copy.

An emulator that runs without gRPC is marked “running but cannot be taken over”. The gateway needs gRPC to read the screen and send input. Stop that emulator and start it from the page.

Stopping the gateway does not stop emulators. When you start the gateway again, it connects to them again.

If you have no AVD, the gateway offers on first run to create emu_web_default: Pixel 5 profile, arm64 system image for Android 14 (API 34), 4096 MB RAM, 1080×2340. See First run. You can also create devices with avdmanager or Android Studio; the list picks them up.