0dd202291c040a3f429d2932e5662477433cbfb1
The root cause of the SIGBUS (alignment fault) crash was casting jmethodID values to function pointers and invoking them directly. jmethodID is an opaque JNI type that must only be used via CallVoidMethod/CallObjectMethod etc. Calling it as a function pointer dereferences garbage memory, causing SIGBUS at address 0xb1. Changes: - Replace function pointer typedefs (output_callback_t etc.) with a struct storing JNIEnv + callback global ref + jmethodIDs - All callbacks now go through CallVoidMethod(env, ref, mid, ...) - Remove getTestProgress() (never used, unused start_time workaround) - Fix Kotlin arg cast: List<String> -> toTypedArray() (ClassCastException) - Update UI default server to speedtest.uztelecom.uz
iperf3-gui
A Flutter-based Android GUI wrapper for iperf3, the popular network performance measurement tool.
Features
- Client-mode network throughput testing
- Simple UI: enter server address, port, and press GO
- Raw iperf3 output display
- Bundled iperf3 v3.21 binaries for arm64-v8a and armeabi-v7a
Architecture
lib/
├── domain/
│ ├── models/ # TestConfiguration, Iperf3Result
│ └── services/ # Iperf3Service (Process runner)
├── ui/
│ └── features/
│ └── test_run/ # TestRunScreen, TestRunViewModel
├── main.dart # App entry point
└── pubspec.yaml # Dependencies: provider, path_provider
Building
Prerequisites:
- Flutter 3.47+
- Android SDK with platform android-36
- JDK 17
flutter create . --org novoyuuparosk --project-name iperf3gui
flutter pub get
flutter analyze
flutter build apk --debug
iperf3 Binaries
Pre-compiled binaries are sourced from davidBar-On/android-iperf3
and bundled in assets/iperf3/ (arm64-v8a and armeabi-v7a for Android 28+).
License
MIT — bundled iperf3 v3.21 is BSD-3-Clause licensed.
Releases
1
iperf3-gui v0.1.0
Latest
Languages
C
70.4%
Makefile
11.5%
Dart
7.8%
C++
2.6%
Roff
2.5%
Other
5.2%