Separate the Android device from its window
RadzDroid bundles an Android emulator, ADB and a viewer so that a Windows development machine can run Android checks without keeping the emulator window open. The launch scripts make the display optional. A headless run starts the virtual device with -no-window, and a developer can attach the viewer when a task needs manual interaction. Automated checks and manual debugging can share the same device and installed app.
This is useful for a workflow that builds an APK, installs it, opens an activity and checks logs repeatedly. Keeping a separate desktop window open is unnecessary for those steps. Screenshots of failure states can come from ADB, and a viewer can be attached when a dialog or touch gesture is easier to inspect visually.
Wait for two different signals
ADB can report that the emulator is connected before Android has finished booting. If the workflow installs an APK or opens a screen immediately after ADB connects, it can hit a service that is still starting. Use the ADB device list to select the intended emulator, then poll the boot property with a timeout. In the commands below, replace the example serial with the one reported on your machine.
adb devices -l
adb -s emulator-5554 wait-for-device
adb -s emulator-5554 shell getprop sys.boot_completed
Once the last command returns 1, run the install and activity launch steps. If the property never reaches that value, capture the device list and emulator logs before retrying. Targeting a serial also avoids sending install commands to a physical phone connected to the same computer.
Choose cold boot or resume on purpose
One RadzDroid launcher starts with snapshot loading disabled. That makes it useful when reproducing a startup issue that a previously saved session might conceal. Disabling snapshot loading still leaves the device's user data intact. A fresh virtual device or an explicit data reset is appropriate when a test needs first-install state. For ordinary edit and run cycles, a saved emulator state can save setup time, with the tradeoff that it can preserve old permissions, files or an installed build.
The bundled headless launcher uses two virtual CPU cores and a 2 GB guest memory setting. These are configuration values. Use your own host and workload to measure startup time, host memory and responsiveness before changing them.
What to record when a check fails
- Device serial, Android API level and whether the run used a saved state.
- APK version, the install result and the activity you attempted to open.
- Log output around the failure and a screenshot if Android reached the home screen.
See the RadzDroid project or consult the Android Debug Bridge reference for device targeting and shell commands.