Speed test, reimagined.
Network88 is a network utility app that measures your connection quality and keeps a local history of every test. It runs a proper multi-connection speed test with a live animated gauge, and stores each result as JSON on the device.
- 📥 Measure download speed (Mbps)
- 📤 Measure upload speed (Mbps)
- 📡 Send a ping and read the round-trip time in ms
- 🌐 Show your IP address and subnet mask
- ⏱️ A live, animated speed gauge that fills as the test runs
- 🕘 Measurement history persisted locally as JSON, viewable in-app
- ↺ Restores your last result on launch so the screen is never empty
- 🔔 Result notification with a connection-quality verdict and one-tap reopen
Download and upload run sequentially (never at the same time) so they don't compete for the
same link. Each phase opens several parallel connections to Cloudflare's global CDN
(speed.cloudflare.com) and sums the bytes transferred — a single connection to a distant
server can't saturate a fast link, which is the classic reason a naïve test under-reports high-speed
connections. The rate is measured over a steady-state window after discarding an initial warm-up
(TCP slow-start), so the ramp-up doesn't drag the number down. Built on OkHttp.
Every completed test is appended to measurements.json in the app's private storage
(newest first, capped at the 100 most recent entries). Each entry stores the timestamp, download and
upload rates, ping, IP address and subnet mask:
[
{
"timestamp": 1751800200000,
"downloadMbps": 94.2,
"uploadMbps": 12.7,
"pingMs": 24,
"ipAddress": "192.168.0.14",
"subnetMask": "255.255.255.0"
}
]
- Java, minSdk 21 / targetSdk 31
- Material Components (dark theme, cards, circular progress)
- AndroidX (AppCompat, ConstraintLayout, RecyclerView), View Binding
- OkHttp for the multi-connection speed test
org.jsonfor local history persistence
# Requires JDK 17 and the Android SDK ./gradlew :app:assembleDebug
Download the latest APK from the Release page (requires Android 7.0 or above).


