Only the apps you pick
Everything else keeps its normal connection. Tick the apps under test and leave the rest of the phone alone.
Open source · Android 5.0 and newer
App Throttler slows, blocks and inspects the traffic of the Android apps you choose. No root, no server, and nothing else on the phone is touched.
Five controls, per-app rules and a live view of every connection — in one small app that stays out of the way of everything else.
Everything else keeps its normal connection. Tick the apps under test and leave the rest of the phone alone.
Download, upload, latency, jitter and packet loss. Set them by slider or load a preset — and change them while the tunnel is running.
A live rate chart, every open connection with its host and bytes, a packet capture and a log for when something won't connect.
Traffic from the selected apps is terminated locally, so the app can show you what would otherwise be invisible — and let you act on it.
.pcap for Wireshark, or export the list as CSV.
Interface walkthrough
Engineered for quick workflows. Switch conditions, isolate apps, audit open flows, and export packet captures without context switching.
Speeds are logarithmic and the last notch means unlimited. All selected apps share the session values unless one is given its own profile.
Caps data delivered to the selected apps.
Caps data sent by the selected apps.
Added to every round trip, half each way.
Random variation of latency, per packet.
Share of packets dropped at random.
Built in. Save your own values and app selection as a profile.
| Network | Download | Upload | Latency | Jitter | Loss |
|---|---|---|---|---|---|
| 2G | 40 kbps | 20 kbps | 300 ms | 50 ms | 2.0% |
| EDGE | 240 kbps | 200 kbps | 400 ms | 80 ms | 1.5% |
| 3G | 384 kbps | 128 kbps | 100 ms | 20 ms | 1.0% |
| 4G | 10.2 Mbps | 5.1 Mbps | 20 ms | 5 ms | 0.1% |
| Slow Wi-Fi | 1 Mbps | 512 kbps | 50 ms | 10 ms | 0.5% |
| Congested Wi-Fi | 2 Mbps | 1 Mbps | 150 ms | 100 ms | 5.0% |
| Satellite | 5 Mbps | 1 Mbps | 600 ms | 30 ms | 0.5% |
| Offline | — | — | — | — | 100% |
Automate
Drive the tunnel from adb, a Quick Settings tile or a launcher shortcut. No screen taps in the middle of a run.
$ adb shell am start \
-n com.rangandale.appthrottler/.control.ControlActivity \
-a com.rangandale.appthrottler.action.START \
--es profile 3G
VPN permission must be granted once in the app. Names are matched case-insensitively; a scenario such as “Elevator ride” needs quoting.
The throttle is a local VPN that only touches the apps you select. There is no account, no analytics, and no traffic routed through us. The source is yours to read.
Runs as a local VPN on stock Android 5.0 and newer.
Traffic is relayed straight to the internet. Nothing is sent to a third party.
Read it, audit it, fork it. Issues and pull requests are welcome.
v0.1.0 release APK · Android 5.0 and newer · 6.4 MB. Signed release build; Android asks for VPN permission the first time you start it.
./gradlew :app:assembleRelease adb install -r release/AppThrottler-v0.1.0.apk