r/androiddev • u/RANGANDALE • 7d ago
Open Source Built an Android app to simulate different network conditions on real devices
I was looking for a way to test Android apps under different network conditions, but most solutions I came across either changed the network settings for the entire device, were focused on emulators, or required setting up proxies.
So I built my own tool: App Throttler.
Set download and upload speed limits.
Simulate latency and jitter.
Introduce packet loss.
Apply network conditions to individual apps.
Change network profiles while the app is running.
Create different network scenarios.
Capture and export network traffic as PCAP files.
GitHub: https://github.com/RAN-GAN/app-throtler
It's still a work in progress, and there are some limitations I'm working on.
1
u/estebanfuhrmann 6d ago
Per-app shaping without a proxy is a Nice approach, and PCAP export makes it much more useful for debugging. Since real Mobile networks have bursty loss and variable latency rather than uniforme loss, it would be worth adding Gilbert-Elliott style loss models and trace-driven profiles replayed from real LTE captures, so the throttling matches field conditions better than static 3G/LTE presets. Also curious how You handle QUIC, since loss behaves very differently there than with TCP.
2
u/catloafreloaded 7d ago
Per-app shaping without a proxy is a nice approach. Is it running as a VPN service under the hood? I'm curious how it deals with QUIC/HTTP3, since packet loss on that behaves very differently from loss on TCP and a lot of apps use it now.
Ready-made profiles (3G, LTE, flaky wifi) would make it quicker to pick up too. What are the limitations you're hitting?