envoyproxy / envoyproxy/envoy-mobile

Cronvoy: Support for Network Quality Estimator (NQE)

Open
#1,574 0 comments 0 reactions 3 assignees Assigned to @goaway View on GitHub
cronet cronvoy-beta enhancement no stalebot
Dominant language
Java
Stars
566
Forks
85
PR merge metrics
No merged PRs in 30d

Description

NQE is currently supported by Cronet, and two Android Apps do use it:

- Android Google Maps for Mobile (AGMM), _quite understandable_
- Android Google Search App (AGSA)

All Android services needed to implement the "NQE feature" are in Java, part of the Android system libraries. Hence, Cronet maintains a set of Java classes wrapping invocations to these libraries, exposing the needed JNI hooks to the C++ layer.

- [```AndroidCellularSignalStrength.getSignalStrengthLevel```](https://source.chromium.org/chromium/chromium/src/+/main:net/android/java/src/org/chromium/net/AndroidCellularSignalStrength.java)
- [```AndroidNetworkLibrary.getWifiSignalLevel```](https://source.chromium.org/chromium/chromium/src/+/main:net/android/java/src/org/chromium/net/AndroidNetworkLibrary.java;l=282)
- [```AndroidNetworkLibrary.reportBadDefaultNetwork```](https://source.chromium.org/chromium/chromium/src/+/main:net/android/java/src/org/chromium/net/AndroidNetworkLibrary.java;l=446) M+
- [```NetworkActivationRequest.createMobileNetworkRequest```](https://source.chromium.org/chromium/chromium/src/+/main:net/android/java/src/org/chromium/net/NetworkActivationRequest.java): attempts to rather use the Cellular Network when WIFI is unresponsive.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.