Docker-Android runs a full Android emulator inside a Docker container, enabling mobile app testing and automation without requiring a physical device. The emulator uses QEMU-based virtualization with optional KVM acceleration for hardware-backed performance, and supports nested virtualization on cloud VMs from providers like AWS, GCP, and Azure for environments without direct hardware acceleration.
The container exposes the Android Debug Bridge over TCP/IP, allowing host-side tools to connect to the emulator as if it were a local device. It provides browser-based interaction with the emulator screen via noVNC, a JavaScript VNC client that streams the display over WebSockets for real-time remote access. An Appium server starts inside the container, enabling automated mobile test frameworks to control the emulator through the WebDriver protocol, and the Appium instance can register with a Selenium Grid hub for distributed test execution across multiple containers.
The emulator display output can be captured as a video file using FFmpeg for post-run review of test sessions. Emulator data, settings, and installed apps are preserved across container restarts through mounted Docker volumes. The container supports selecting Android API levels, applying custom device skins, and choosing predefined phone or tablet models. It also integrates with Genymotion's cloud service for additional device profiles and managed infrastructure.