scrcpy for Projecting Your Android Screen

When delivering presentations about Android, a frequent challenge is: how do I get the audience to see what’s on a device’s screen?

In the beginning, we had two options:

  1. Use the emulator, which back in the early days of Android was ARM-only and very slow

  2. Use a hardware projector (e.g., an ELMO), which were hard to find

In 2009, to help with this, I created DroidEx. This has long been relegated to the dustbin of history, outside of this fork. DroidEx used the same protocol that adb uses for screenshots (e.g., from inside Android Studio), just pushing the screenshots into a desktop window. It was slow (~6 fps), but it worked.

Later, Jens Riboe took the DroidEx concept and created Droid@Screen, with a better desktop UI. And that’s what I used for years for presentations… until very recently.

If you can demo using an Android 5.0+ device, use scrcpy, by Romain Vimont and Genymobile.

This uses a little H.264 server, pushed over onto the device, which the client then plays back. This offers much better performance (30-60 fps). I even accidentally demonstrated an Android device playing back video, and scrcpy handled it flawlessly. It is as simple to use as was Droid@Screen — just run the scrcpy command to push over the server bit, start it running, and launch the client UI. The client UI even accepts input and forwards it to the device, so you can control the hardware from your notebook.

If you are delivering presentations with Android demos — sales, conference presentations, training, etc. — and you have a case where an emulator is insufficient, scrcpy should be in your toolbox.