CronetEngine

abstract class CronetEngine

Sous-classes directes connues
Sous-classes indirectes connues
JavaCronetEngine

CronetEngine soutenu par java.net.HttpURLConnection.


Moteur de traitement des UrlRequest, qui utilise la meilleure pile HTTP disponible sur la plate-forme actuelle. Une instance de cette classe peut être créée à l'aide de Builder.

Résumé

Types imbriqués

Compilateur pour les CronetEngine, qui permet la configuration du temps d'exécution de CronetEngine.

Classe qui fournit une méthode pour charger la bibliothèque native Cronet.

Constantes

const Int

La valeur du nombre de requêtes actives est inconnue

const Int

La valeur d'une métrique de connexion est inconnue.

const Int

Le type de connexion effectif estimé est la 2G.

const Int

Le type de connexion effectif estimé est la 3G.

const Int

Le type de connexion effectif estimé est la 4G.

const Int

L'appareil est hors connexion.

const Int

Le type de connexion compatible estimé est la 2G lente.

const Int

L'estimation du type de connexion effectif est inconnue.

const Long

Valeur à utiliser pour annuler toute liaison réseau précédente.

Constructeurs publics

Fonctions publiques

Unit

Enregistre un écouteur qui est appelé après la fin de chaque requête avec les informations de la requête.

Unit

Enregistre un écouteur qui est appelé chaque fois que l'estimateur de qualité du réseau constate un temps d'aller-retour d'échantillon.

Unit

Enregistre un écouteur qui est appelé chaque fois que l'estimateur de qualité du réseau observe une mesure du débit d'échantillon.

Unit
bindToNetwork(networkHandle: Long)

Lie le moteur au handle réseau spécifié.

Unit
configureNetworkQualityEstimatorForTesting(
    useLocalHostRequests: Boolean,
    useSmallerResponses: Boolean,
    disableOfflineCheck: Boolean
)

Configure l'estimateur de qualité du réseau pour les tests.

abstract URLStreamHandlerFactory!

Crée un URLStreamHandlerFactory pour gérer le trafic HTTP et HTTPS.

Int

Renvoie le nombre de requêtes actives.

Int

Renvoie l'estimation du débit descendant (en kilobits par seconde) calculée par l'estimateur de qualité du réseau.

Int

Renvoie une estimation du type de connexion effectif calculé par l'estimateur de qualité du réseau.

abstract ByteArray<Byte>!

Cette fonction est obsolète.

Dans les versions modernes de Cronet, cette méthode renvoie toujours un tableau vide.

Int

Renvoie l'estimation du temps d'aller-retour HTTP (en millisecondes) calculée par l'estimateur de qualité du réseau.

Int

Renvoie l'estimation du RTT de transport (en millisecondes) calculée par l'estimateur de qualité du réseau.

abstract String!
abstract UrlRequest.Builder!
newUrlRequestBuilder(
    url: String!,
    callback: UrlRequest.Callback!,
    executor: Executor!
)

Crée un compilateur pour UrlRequest.

abstract URLConnection!

Établit une nouvelle connexion à la ressource spécifiée par URLurl.

Unit

Supprime un écouteur de requête terminée.

Unit

Supprime un écouteur des temps d'aller-retour s'il a été précédemment enregistré avec addRttListener.

Unit

Supprime un écouteur de débit.

abstract Unit

Arrête le CronetEngine s'il n'y a aucune requête active, sinon génère une exception.

Unit
startNetLogToDisk(dirPath: String!, logAll: Boolean, maxSize: Int)

Démarre la journalisation NetLog dans un répertoire spécifié avec une taille limitée.

abstract Unit
startNetLogToFile(fileName: String!, logAll: Boolean)

Démarre la consignation NetLog dans un fichier.

abstract Unit

Arrête la journalisation NetLog et vide le fichier sur le disque.

Constantes

ACTIVE_REQUEST_COUNT_UNKNOWN

const val ACTIVE_REQUEST_COUNT_UNKNOWN = -1: Int

La valeur du nombre de requêtes actives est inconnue

CONNECTION_METRIC_UNKNOWN

const val CONNECTION_METRIC_UNKNOWN = -1: Int

La valeur d'une métrique de connexion est inconnue.

EFFECTIVE_CONNECTION_TYPE_2G

const val EFFECTIVE_CONNECTION_TYPE_2G = 3: Int

Le type de connexion effectif estimé est la 2G.

EFFECTIVE_CONNECTION_TYPE_3G

const val EFFECTIVE_CONNECTION_TYPE_3G = 4: Int

Le type de connexion effectif estimé est la 3G.

EFFECTIVE_CONNECTION_TYPE_4G

const val EFFECTIVE_CONNECTION_TYPE_4G = 5: Int

Le type de connexion effectif estimé est la 4G.

EFFECTIVE_CONNECTION_TYPE_OFFLINE

const val EFFECTIVE_CONNECTION_TYPE_OFFLINE = 1: Int

L'appareil est hors connexion.

EFFECTIVE_CONNECTION_TYPE_SLOW_2G

const val EFFECTIVE_CONNECTION_TYPE_SLOW_2G = 2: Int

Le type de connexion compatible estimé est la 2G lente.

EFFECTIVE_CONNECTION_TYPE_UNKNOWN

const val EFFECTIVE_CONNECTION_TYPE_UNKNOWN = 0: Int

L'estimation du type de connexion effectif est inconnue.

UNBIND_NETWORK_HANDLE

const val UNBIND_NETWORK_HANDLE = -1: Long

Valeur à utiliser pour annuler toute liaison réseau précédente.

Constructeurs publics

CronetEngine

CronetEngine()

Fonctions publiques

addRequestFinishedListener

fun addRequestFinishedListener(listener: RequestFinishedInfo.Listener!): Unit

Enregistre un écouteur qui est appelé après la fin de chaque requête avec les informations de la requête.

L'écouteur est appelé sur un java.util.concurrent.Executor fourni par l'écouteur.

Paramètres
listener: RequestFinishedInfo.Listener!

Écouteur pour les requêtes terminées.

addRttListener

fun addRttListener(listener: NetworkQualityRttListener!): Unit

Enregistre un écouteur qui est appelé chaque fois que l'estimateur de qualité du réseau constate un temps d'aller-retour d'échantillon. Cette méthode doit être appelée après enableNetworkQualityEstimator, sinon une exception sera générée. Les temps d'aller-retour peuvent être enregistrés à différents niveaux de la pile réseau, y compris TCP, QUIC et au niveau de la requête d'URL. L'écouteur est appelé sur le java.util.concurrent.Executor transmis à enableNetworkQualityEstimator.

Paramètres
listener: NetworkQualityRttListener!

l'écouteur des délais aller-retour.

addThroughputListener

fun addThroughputListener(listener: NetworkQualityThroughputListener!): Unit

Enregistre un écouteur qui est appelé chaque fois que l'estimateur de qualité du réseau observe une mesure du débit d'échantillon. Cette méthode doit être appelée après enableNetworkQualityEstimator. Les observations du débit sont calculées en mesurant les octets lus sur l'interface réseau active lorsque au moins une réponse d'URL est reçue. L'écouteur est appelé sur le java.util.concurrent.Executor transmis à enableNetworkQualityEstimator.

Paramètres
listener: NetworkQualityThroughputListener!

l'écouteur du débit.

bindToNetwork

fun bindToNetwork(networkHandle: Long): Unit

Lie le moteur au handle réseau spécifié. Toutes les demandes créées via ce moteur utiliseront le réseau associé à ce compte. Si ce réseau se déconnecte, toutes les requêtes échoueront. L'erreur exacte dépendra de l'étape de traitement de la requête au moment de la déconnexion du réseau. Les identifiants réseau peuvent être obtenus via Network#getNetworkHandle. Disponible uniquement à partir d'Android Marshmallow.

Paramètres
networkHandle: Long

Handle réseau auquel associer le moteur. Spécifiez UNBIND_NETWORK_HANDLE pour dissocier.

configureNetworkQualityEstimatorForTesting

fun configureNetworkQualityEstimatorForTesting(
    useLocalHostRequests: Boolean,
    useSmallerResponses: Boolean,
    disableOfflineCheck: Boolean
): Unit

Configure l'estimateur de qualité du réseau pour les tests. Cette méthode doit être appelée avant l'ajout des écouteurs de temps d'aller-retour et de débit, et après l'activation de l'estimateur de qualité du réseau.

Paramètres
useLocalHostRequests: Boolean

inclure les requêtes adressées à localhost dans les estimations.

useSmallerResponses: Boolean

inclure les petites réponses dans les estimations du débit.

disableOfflineCheck: Boolean

Si la valeur est définie sur "true", les vérifications de l'état hors connexion de l'appareil sont désactivées lors du calcul du type de connexion effectif ou lors de l'écriture des préférences.

createURLStreamHandlerFactory

abstract fun createURLStreamHandlerFactory(): URLStreamHandlerFactory!

Crée un URLStreamHandlerFactory pour gérer le trafic HTTP et HTTPS. Une instance de cette classe peut être installée via setURLStreamHandlerFactory, ce qui permet d'utiliser cette CronetEngine par défaut pour toutes les requêtes créées via openConnection.

Cronet n'utilise pas certaines fonctionnalités HTTP fournies par le système :

Bien que Cronet accepte et encourage les requêtes utilisant le protocole HTTPS, il n'est pas compatible avec l'API HttpsURLConnection. Ce manque de compatibilité inclut également l'impossibilité d'utiliser certaines fonctionnalités HTTPS fournies par le système :

Renvoie
URLStreamHandlerFactory!

une instance URLStreamHandlerFactory implémentée par ce CronetEngine.

getActiveRequestCount

fun getActiveRequestCount(): Int

Renvoie le nombre de requêtes actives.

Une requête devient "active" dans UrlRequest.start(), en supposant que cette méthode ne génère pas d'exception. Il devient inactif lorsque tous les rappels ont été renvoyés et qu'aucun autre rappel ne peut être déclenché à l'avenir. En pratique, cela signifie que la requête est inactive une fois que onSucceeded/onCanceled/onFailed a renvoyé une réponse et que tous les écouteurs de requête terminée ont renvoyé une réponse. Pour en savoir plus, consultez Cycle de vie des requêtes Cronet.

getDownstreamThroughputKbps

fun getDownstreamThroughputKbps(): Int

Renvoie l'estimation du débit descendant (en kilobits par seconde) calculée par l'estimateur de qualité du réseau. Définissez sur CONNECTION_METRIC_UNKNOWN si la valeur n'est pas disponible. Cette méthode doit être appelée après enableNetworkQualityEstimator, sinon une exception sera générée.

Renvoie
Int

Estimation du débit descendant en kilobits par seconde.

getEffectiveConnectionType

fun getEffectiveConnectionType(): Int

Renvoie une estimation du type de connexion effectif calculé par l'estimateur de qualité du réseau. Appelez enableNetworkQualityEstimator pour commencer à calculer cette valeur.

Renvoie
Int

le type de connexion estimé. La valeur renvoyée est l'une des valeurs EFFECTIVE_CONNECTION_TYPE_* .

getGlobalMetricsDeltas

abstract fun getGlobalMetricsDeltas(): ByteArray<Byte>!

getHttpRttMs

fun getHttpRttMs(): Int

Renvoie l'estimation du temps d'aller-retour HTTP (en millisecondes) calculée par l'estimateur de qualité du réseau. Définissez sur CONNECTION_METRIC_UNKNOWN si la valeur n'est pas disponible. Cette méthode doit être appelée après enableNetworkQualityEstimator, sinon une exception sera générée.

Renvoie
Int

Estimation du temps de transmission aller-retour HTTP en millisecondes.

getTransportRttMs

fun getTransportRttMs(): Int

Renvoie l'estimation du RTT de transport (en millisecondes) calculée par l'estimateur de qualité du réseau. Définissez sur CONNECTION_METRIC_UNKNOWN si la valeur n'est pas disponible. Cette méthode doit être appelée après enableNetworkQualityEstimator, sinon une exception sera générée.

Renvoie
Int

Estimation du RTT de transport en millisecondes.

getVersionString

abstract fun getVersionString(): String!
Renvoie
String!

Chaîne de version du moteur lisible par l'utilisateur.

newUrlRequestBuilder

abstract fun newUrlRequestBuilder(
    url: String!,
    callback: UrlRequest.Callback!,
    executor: Executor!
): UrlRequest.Builder!

Crée un compilateur pour UrlRequest. Tous les rappels pour les objets UrlRequest générés seront appelés sur les threads de executor. executor ne doit pas exécuter de tâches sur le thread appelant execute pour éviter de bloquer les opérations réseau et de provoquer des exceptions lors de l'arrêt.

Paramètres
url: String!

URL des requêtes générées.

callback: UrlRequest.Callback!

Objet de rappel appelé lors de différents événements.

executor: Executor!

Executor sur lequel tous les rappels seront appelés.

openConnection

abstract fun openConnection(url: URL!): URLConnection!

Établit une nouvelle connexion à la ressource spécifiée par URLurl.

Remarque : L'implémentation java.net.HttpURLConnection de Cronet est soumise à certaines limites. Pour en savoir plus, consultez createURLStreamHandlerFactory.

Paramètres
url: URL!

URL de la ressource à laquelle se connecter.

Renvoie
URLConnection!

une instance java.net.HttpURLConnection implémentée par ce CronetEngine.

Génère
java.io.IOException

si une erreur se produit lors de l'ouverture de la connexion.

removeRequestFinishedListener

fun removeRequestFinishedListener(listener: RequestFinishedInfo.Listener!): Unit

Supprime un écouteur de requête terminée.

Paramètres
listener: RequestFinishedInfo.Listener!

l'écouteur à supprimer.

removeRttListener

fun removeRttListener(listener: NetworkQualityRttListener!): Unit

Supprime un écouteur des temps d'aller-retour s'il a été précédemment enregistré avec addRttListener. Cette méthode doit être appelée après l'ajout d'un NetworkQualityRttListener afin d'arrêter de recevoir des observations.

Paramètres
listener: NetworkQualityRttListener!

l'écouteur des délais aller-retour.

removeThroughputListener

fun removeThroughputListener(listener: NetworkQualityThroughputListener!): Unit

Supprime un écouteur de débit. Cette méthode doit être appelée après l'ajout d'un NetworkQualityThroughputListener avec addThroughputListener afin d'arrêter de recevoir des observations.

Paramètres
listener: NetworkQualityThroughputListener!

l'écouteur du débit.

shutdown

abstract fun shutdown(): Unit

Arrête le CronetEngine s'il n'y a aucune requête active, sinon génère une exception.

Ne peut pas être appelé sur le thread réseau (le thread sur lequel Cronet appelle Executor, qui est différent du thread sur lequel Executor appelle les rappels). Peut bloquer jusqu'à ce que toutes les ressources de CronetEngine aient été nettoyées.

startNetLogToDisk

fun startNetLogToDisk(dirPath: String!, logAll: Boolean, maxSize: Int): Unit

Démarre la journalisation NetLog dans un répertoire spécifié avec une taille limitée. Le NetLog contient les événements émis par tous les CronetEngines actifs. NetLog est utile pour le débogage. Une fois la journalisation arrêtée stopNetLog, les données sont écrites dans netlog.json dans dirPath. Si la journalisation est interrompue, vous pouvez assembler manuellement les fichiers trouvés dans le sous-répertoire .inprogress à l'aide de https://chromium.googlesource.com/chromium/src/+/main/net/tools/stitch_net_log_files.py. Vous pouvez consulter le journal dans un navigateur Chrome en accédant à chrome://net-internals/#import.

Paramètres
dirPath: String!

Répertoire dans lequel le fichier netlog.json sera créé. dirPath doit déjà exister. Aucun fichier NetLog ne doit exister dans le répertoire. Si la journalisation est active, cette méthode est ignorée.

logAll: Boolean

true pour inclure les événements de base, les cookies utilisateur, les identifiants et tous les octets transférés dans le journal. Cette option présente un risque pour la confidentialité, car elle expose les identifiants de l'utilisateur. Elle ne doit être utilisée qu'avec le consentement de l'utilisateur et dans les situations où le journal ne sera pas public. false pour n'inclure que les événements de base.

maxSize: Int

Espace disque total maximal en octets qui doit être utilisé par NetLog. L'utilisation réelle de l'espace disque peut légèrement dépasser cette limite.

startNetLogToFile

abstract fun startNetLogToFile(fileName: String!, logAll: Boolean): Unit

Démarre la consignation NetLog dans un fichier. Le NetLog contient les événements émis par tous les CronetEngines actifs. NetLog est utile pour le débogage. Vous pouvez afficher le fichier dans un navigateur Chrome en accédant à chrome://net-internals/#import.

Paramètres
fileName: String!

le chemin d'accès complet au fichier. Il ne doit pas être vide. Si le fichier existe, il est tronqué avant le début de l'opération. Si la journalisation est active, cette méthode est ignorée.

logAll: Boolean

true pour inclure les événements de base, les cookies utilisateur, les identifiants et tous les octets transférés dans le journal. Cette option présente un risque pour la confidentialité, car elle expose les identifiants de l'utilisateur. Elle ne doit être utilisée qu'avec le consentement de l'utilisateur et dans les situations où le journal ne sera pas public. false pour n'inclure que les événements de base.

stopNetLog

abstract fun stopNetLog(): Unit

Arrête la journalisation NetLog et vide le fichier sur le disque. Si aucune session de journalisation n'est en cours, cet appel est ignoré.