How to limit speed of internet connection on Android emulator?
Solution 1:
For Android Studio projects you can do the following:
If you need to change net speed temporarily, then on an emulator toolbar, click three dots (settings), go to Cellular tab and configure the network speed there. You need to have a recent Android Tools.
If you want to set this speed permanently for some emulator image:
- Open menu Tools -> Android -> AVD Manager
- Select/create your emulator avd image, click Edit
- Click Show Advanced Settings button
-
Set the desired net speed
Speeds for reference in increasing kbps:
UP DOWN -------- ---------- gsm GSM/CSD 14.4 14.4 hscsd HSCSD 14.4 57.6 gprs GPRS 28.8 57.6 umts UMTS/3G 384.0 384.0 edge EDGE/EGPRS 473.6 473.6 hsdpa HSDPA 5760.0 13,980.0 lte LTE 58,000.0 173,000.0 evdo EVDO 75,000.0 280,000.0 full No limit ∞ ∞
Re-launch the emulator
OLD ANSWER (obsolete)
If you are working in Eclipse, go to Run->Run Configurations, select your run configuration and then go to "Target" Tab. There you will find a "Network Speed" combobox (under the "Emulator Launch Parameters" section).
If you are running emulator from command line, then you can use "-netspeed" cmd line parameter (run emulator -help-netspeed for overview of possible options)
Solution 2:
Easiest way to tweak things while emulator is still up is to connect to the emulator using a terminal. Just use telnet or netcat (interactively, you can just "telnet localhost 5554" and type "help" -- below examples show how to script it:
$ echo "network speed 100 100" | nc localhost 5554
$ echo "network status" | nc localhost 5554
Current network status:
download speed: 100000 bits/s (12.2 KB/s)
upload speed: 100000 bits/s (12.2 KB/s)
minimum latency: 0 ms
maximum latency: 0 ms
You can also set the delay/latency:
$ echo "network delay gprs" | nc localhost 5554
$ echo "network status" | nc localhost 5554
Current network status:
download speed: 100000 bits/s (12.2 KB/s)
upload speed: 100000 bits/s (12.2 KB/s)
minimum latency: 150 ms
maximum latency: 550 ms
Just makes it easier to do things at runtime and test various scenarios (via automation, manual testing, etc).
Solution 3:
Appium set network speed with
adb emu network speed
example:
adb emu network speed gsm
all values(see appium doc ): gsm, hscsd, gprs, umts, edge, hsdpa, lte, evdo, full