My Duplila app enables screen sharing between Android devices. It utilizes an ADB connection to stream screen content and audio between two or more Android devices.
While there may already be other options available for screen mirroring (such as Miracast), I believe that using ADB for this purpose offers unique and convenient features.
With Duplila, you can connect your device using a USB cable as well as WiFi. In addition, ADB allows you to transfer touch gestures and synchronize the clipboard. These features can be particularly useful for controlling your Android TV, effectively simulating a TV remote control.
It offers two different ways (modes) to duplicate your screen. I'll explain the details in this post.
If you you're an Android enthusiast or power user that likes to learn more about Android internals, I highly recommend to check out the Bugjaeger app. It allows you to connect 2 Android devices through USB OTG and perform many of the tasks that are normally only accessible from a developer machine via ADB directly from Android phone/tablet.
How to Connect
You'll need at least 2 Android devices - host and target. Host device has Duplila installed. The target device is the one you're trying to connect to through my Duplila app.
To establish a connection, you first need to enable Developer Options and USB/WiFi debugging on your target device. The procedure for this can be different for different types of Android devices. You should check out the official docs for more information.
Connect Through USB
- Plug in the USB cable. When using OTG adapter, the adapter should be plugged to host device. With USB C, you might need to play with "Controlled by" USB settings, if connection doesn't work.
- Confirm the pop-up dialog on host asking for USB connection permission
- Confirm the pop-up dialog on target asking for ADB authorization
On some devices you might first need to enable OTG connection in Android settings manually. Otherwise USB host mode doesn't work and no device is detected after plugging in the cable.
- On your target device in Android settings go to Developer Options and enable Wireless debugging. This is only available on devices with Android 11 or higher (it's still possible to connect wirelessly on older targets after enabling TCP/IP adb connection through USB initially as shown bellow).
- Select a pairing option
- Open Pairing dialog in Duplila
- Use the IP address, Port, and Pairing code. Alternatively you can select pairing with QR code, which exchanges pairing parameters automatically after scanning the code generated in Duplila.
- Open the Connection dialog in Duplila (host) and enter the IP address and port from shown at the top of Wireless debugging section in Developer option on target.
Connection vs Pairing
Pairing is basically used only for authorization (establishing trust between devices). You only need to do this initially, when connecting your target device for first time. You can then skip the pairing step when you connect to the same device later. A connection can sometimes be established automatically after pairing through Network Service Discovery (automatic IP & port discovery with mDNS), but this didn't work reliably on any of my devices.
Connection dialog is the one actually establishing an ADB connection (see screenshots above). Once connected, your target device should appear inside Duplila's device list.
Wireless connection on older devices
You'll initially need to connect your target through USB cable. Once your target appears in Duplila's devices list, tap on the WiFi icon next to the device name.
You should now be able to connect to your target wirelessly on port 5555. The target should be available for wireless connection until reboot or till you disable Developer options.
You should be able to find your target IP address in WiFi settings (remember that port is 5555).
Underneath my app executes the adb command
adb tcpip 5555. It then immediately tries to connect to your target. This however doesn't always work reliably, so you might need to connect from the Connection dialog manually (see procedure above).
Note that this should also work on more recent Android devices. You might prefer this option if the constant port number changes and switching of Wireless Debugging is starting to bother you.
The mirroring mode is accessed from the first tab - "Mirror". You can start mirroring the screen by tapping on the target device shown inside of Duplila.
In this mode the target screen is shown inside of Duplila app on your host.
You can use your touch gestures to control the target device from host. You can also enable clipboard synchronization which allows you to transfer text from target to host.
Duplila is also offering the "opposite" mode, where you can show host screen (and stream audio) on your target. Depending on your situation, this might better suit your use case.
Switch to the "Project" tab and tap on a target in the device list (assuming you were able to establish a connection successfully). This will cast your host screen onto target's display.
Casting Screen to Multiple Targets Simultaneously
The "Projection" mode also allows to select multiple target devices simultaneously.
You can do this by tapping & holding one of the targets from the connected devices list (Project tab needs to be selected).
Audio streaming is disabled by default, but you can enable it in app settings (gear icon in top toolbar).
It needs to be enabled for each mode separately. So there's one checkbox for Mirror and a separate one for Project mode.
Something is not Working or You'd Want to Suggest New Features
I'm constantly working on improving my apps, but bugs happen.
If you find that something is not working or you'd like to add a new feature, you can write to me directly at email@example.com.
Do You Like Duplila?
Leave a review form my app at Google Play then 😊. Reviews really help me a lot.