Update: According to a comment, this does no longer work due to cryptographical authentication!
I often use the Android emulator to check my apps with different display configurations and to stress-test them. But the problem is that it is really slow on my development laptop. So I installed the Android emulator on my desktop PC running Windows and connect to it over my LAN. The major advantage is that you can continue using your development machine while a “server” deals with emulating – one could even emulate several devices at once and still continue programming.
The approach in a nutshell: Forward the emulator’s port so that it is accessible in the local network. Then connect the ADB to it.
On your desktop – the “server”:
- Store the executable of Trivial Portforward on the desktop system (e.g. directly in C:\trivial_portforward.exe).
- Create a virtual device to emulate (HowTo) and name it “EmulatedAndroid”.
- Create a batch file:
<your-android-sdk-path>\tools\emulator -avd EmulatedAndroid & echo 'On the development machine: adb kill-server and then: adb connect <desktop-pc-name>:5585' C:\trivial_portforward 5585 127.0.0.1 5555
- If you execute this batch file on your desktop PC, it will open the emulator with the specified virtual device.
Now on your laptop – the “client”:
- Now – given that both systems are in the same network – you can connect to the emulator from your laptop by typing in a terminal:
adb kill-server adb connect <desktop-pc-name>:5585
- Now you can upload apps, access the logcat and execute adb commands on your remote emulator like on any other Android device. And all without performance impairments on your workstation.
- If you are experiencing communication losses, increase the emulator timeout in the eclipse settings to maybe 5000 ms (Window → Preferences → Android → DDMS → ADB connection time out (ms)).