// the find
Genymobile/scrcpy
Display and control your Android device
scrcpy mirrors and controls Android devices over USB or TCP/IP from Linux, Windows, or macOS — no app install required, no root. At 143k stars it's one of the most-used Android developer tools in existence, and v4.0 shows it's still being actively pushed forward.
The latency numbers are real — 35-70ms is genuinely usable for interactive testing, not just video playback. The architecture is clean: a Java server component runs on the Android side via adb, while the C client handles decoding and rendering with SDL2/FFmpeg, keeping the hot path native. HID keyboard/mouse simulation (uhid/AOA) means input bypasses Android's accessibility layer, so it works in apps that block injected events. The virtual display feature (--new-display) is underrated — you can run a separate app instance without touching the physical screen.
Audio forwarding requires Android 11+, so anything older gets silent mirroring — this trips people up in CI/emulator setups where the Android version isn't obvious. Building from source requires assembling a specific set of deps (meson, ninja, SDL2, FFmpeg, libusb) and the server-side Java build adds Gradle to that list; the prebuilt releases sidestep this but you're then trusting a binary. Wireless TCP/IP mode requires a wired USB pairing step first on Android 10 and below — the docs cover it, but it surprises users who expect pure WiFi setup. No multi-device window management: connecting five devices means five separate scrcpy processes with no shared control surface.