When you develop or troubleshoot an Android app, the biggest unknown is often the quality of the user’s connection. A slow 3G link, a high‑latency satellite link, or an intermittent Wi‑Fi drop can dramatically change how an app behaves. Buying external hardware or setting up a lab network is possible, but most developers and power users need a quick, repeatable way to mimic those conditions directly on the device.
Starting with Android 8.0 (Oreo) the operating system added two hidden switches inside Developer Options: Network speed and Network latency. These settings do not change the physical radio; instead they throttle the traffic that passes through the Android network stack. The result is a reliable, system‑wide simulation that works for any app that respects the standard sockets API – which is virtually all apps on the Play Store.
Because the simulation is performed in software, you can switch between profiles instantly, combine speed with latency, and reset to the real connection with a single tap. The only limitation is that the throttling applies to Wi‑Fi traffic; cellular data is left untouched. If you need to test mobile‑only scenarios you will have to use an external tool or a rooted device, but for most UI‑level and API‑level testing the built‑in option is more than enough.
Network speed and Network latency settings (they are usually set to "Default"). You will want to revert them after testing.On some OEM skins (e.g., Samsung One UI or Xiaomi MIUI) the path may be Settings > About phone > Software information > Build number. The number of taps is still seven.
If you do not see these entries, ensure your Android version is 8.0 or newer. Some heavily customized ROMs hide them under a sub‑menu called Advanced networking.
3G to emulate a typical mobile broadband connection.200 ms simulates the round‑trip delay you would see on a congested cellular link.Warning: The simulation affects all Wi‑Fi traffic on the device. If you are on a shared network, other users on the same Wi‑Fi will experience the same slowdown while the setting is active.
Before you launch the app you want to test, confirm that the throttling is active. The simplest way is to use a web‑based speed test or a terminal command.
ping -c 5 google.com
The time= values will be inflated by the latency you set.
If the speed test still shows your full Wi‑Fi bandwidth, double‑check that you selected the profile inside Developer Options and that you are connected via Wi‑Fi (not mobile data).
Now launch the app you are developing or troubleshooting. Observe how it behaves under the constrained network:
Take notes or screenshots – the same steps can be repeated with different speed/latency combos to build a matrix of app performance.
Default.Default.If you forget to reset and notice sluggish browsing later, the same steps will instantly restore normal performance.
Some manufacturers hide the networking throttling behind a different label. Look for Network throttling, Network simulation, or Advanced networking. If it is truly missing, the device may be running Android 7.x or a custom ROM that stripped the feature.
Occasionally an app uses its own custom networking library that opens raw sockets bypassing the Android stack. In such rare cases the built‑in simulation will not apply. To work around this you can:
logcat for netd messages indicating throttling.Network Link Conditioner on a rooted device, which can inject latency at the kernel level.The Android throttling adds the chosen latency on top of the existing round‑trip time of your Wi‑Fi network. If your base ping is already 50 ms, selecting 200 ms will result in roughly 250 ms observed in ping output.
Because the system has to buffer and pace packets, you may notice a modest increase in CPU usage, especially on older devices. If the battery drain becomes noticeable, stop the simulation and test on a charger.
adb shell settings put global network_speed 3g
adb shell settings put global network_latency 200
Replace 3g and 200 with the desired values. This is handy for automated test scripts.The built‑in simulation is perfect for quick checks, UI testing, and early‑stage performance profiling. However, if you need to:
you will need a dedicated network‑emulation appliance or a rooted device with tools like tc netem. Those setups can replicate more complex real‑world scenarios such as satellite links or congested public Wi‑Fi.
Using Android’s Developer Options to simulate network speed and latency gives you a fast, zero‑cost way to see how your app behaves under realistic conditions. The workflow is straightforward: enable Developer Options, pick a speed and latency, verify with a speed test, run your app, and then revert the settings. By following the steps and tips above you can catch performance bugs early, improve user experience on slow connections, and avoid the overhead of external lab equipment.
Remember to always reset the simulation after testing, and consider combining this method with Android Studio’s profiling tools for deeper insight. Happy testing!









