CronetEngine

abstract class CronetEngine

Bekannte direkte Unterklassen
Bekannte indirekte Unterklassen

Eine Engine zur Verarbeitung von UrlRequests, die den besten HTTP-Stack verwendet, der auf der aktuellen Plattform verfügbar ist. Eine Instanz dieser Klasse kann mit Builder erstellt werden.

Zusammenfassung

Verschachtelte Typen

Ein Builder für CronetEngine, der die Laufzeitkonfiguration von CronetEngine ermöglicht.

Eine Klasse, die eine Methode zum Laden der nativen Cronet-Bibliothek bereitstellt.

Konstanten

const Int

Der Wert der Anzahl aktiver Anfragen ist unbekannt.

const Int

Der Wert eines Verbindungsmesswerts ist unbekannt.

const Int

Der geschätzte effektive Verbindungstyp ist 2G.

const Int

Die Schätzung des effektiven Verbindungstyps ist „3G“.

const Int

Die Schätzung des effektiven Verbindungstyps ist 4G.

const Int

Das Gerät ist offline.

const Int

Die Schätzung des effektiven Verbindungstyps ist „Langsame 2G-Verbindung“.

const Int

Die Schätzung des effektiven Verbindungstyps ist unbekannt.

const Long

Der Wert, der zum Aufheben einer vorherigen Netzwerkbindung verwendet werden soll.

Öffentliche Konstruktoren

Öffentliche Funktionen

Unit

Registriert einen Listener, der nach dem Ende jeder Anfrage mit den Anfrageinformationen aufgerufen wird.

Unit

Registriert einen Listener, der aufgerufen wird, wenn der Schätzer für die Netzwerkqualität eine Stichproben-Roundtrip-Zeit erfasst.

Unit

Registriert einen Listener, der aufgerufen wird, wenn der Schätzer für die Netzwerkqualität eine Messung des Durchsatzes einer Stichprobe beobachtet.

Unit
bindToNetwork(networkHandle: Long)

Bindet die Engine an das angegebene Netzwerk-Handle.

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

Konfiguriert den Schätzer für die Netzwerkqualität für Tests.

abstract URLStreamHandlerFactory!

Erstellt eine URLStreamHandlerFactory zur Verarbeitung von HTTP- und HTTPS-Traffic.

Int

Gibt die Anzahl der aktiven Anfragen zurück.

Int

Gibt die vom Schätzer für die Netzwerkqualität berechnete Schätzung für den Downstream-Durchsatz (in Kilobit pro Sekunde) zurück.

Int

Gibt eine Schätzung des effektiven Verbindungstyps zurück, der vom Schätzer für die Netzwerkqualität berechnet wurde.

abstract ByteArray<Byte>!

Diese Funktion wurde eingestellt.

In modernen Versionen von Cronet wird immer ein leeres Array zurückgegeben.

Int

Gibt die vom Schätzer für die Netzwerkqualität berechnete geschätzte HTTP-RTT (in Millisekunden) zurück.

Int

Gibt die vom Schätzer für die Netzwerkqualität berechnete geschätzte Transport-RTT (in Millisekunden) zurück.

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

Erstellt einen Builder für UrlRequest.

abstract URLConnection!

Stellt eine neue Verbindung zur Ressource her, die durch URLurl angegeben wird.

Unit

Entfernt einen Listener für abgeschlossene Anfragen.

Unit

Entfernt einen Listener für Round-Trip-Zeiten, wenn er zuvor mit addRttListener registriert wurde.

Unit

Entfernt einen Listener für den Durchsatz.

abstract Unit

Fährt CronetEngine herunter, wenn keine aktiven Anfragen vorhanden sind. Andernfalls wird eine Ausnahme ausgelöst.

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

Startet die NetLog-Protokollierung in einem angegebenen Verzeichnis mit einer begrenzten Größe.

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

Startet die NetLog-Protokollierung in einer Datei.

abstract Unit

Beendet die NetLog-Protokollierung und schreibt die Datei auf die Festplatte.

Konstanten

ACTIVE_REQUEST_COUNT_UNKNOWN

const val ACTIVE_REQUEST_COUNT_UNKNOWN = -1: Int

Der Wert der Anzahl aktiver Anfragen ist unbekannt.

CONNECTION_METRIC_UNKNOWN

const val CONNECTION_METRIC_UNKNOWN = -1: Int

Der Wert eines Verbindungsmesswerts ist unbekannt.

EFFECTIVE_CONNECTION_TYPE_2G

const val EFFECTIVE_CONNECTION_TYPE_2G = 3: Int

Der geschätzte effektive Verbindungstyp ist 2G.

Weitere Informationen
getEffectiveConnectionType

EFFECTIVE_CONNECTION_TYPE_3G

const val EFFECTIVE_CONNECTION_TYPE_3G = 4: Int

Die Schätzung des effektiven Verbindungstyps ist „3G“.

Weitere Informationen
getEffectiveConnectionType

EFFECTIVE_CONNECTION_TYPE_4G

const val EFFECTIVE_CONNECTION_TYPE_4G = 5: Int

Die Schätzung des effektiven Verbindungstyps ist 4G.

Weitere Informationen
getEffectiveConnectionType

EFFECTIVE_CONNECTION_TYPE_OFFLINE

const val EFFECTIVE_CONNECTION_TYPE_OFFLINE = 1: Int

Das Gerät ist offline.

Weitere Informationen
getEffectiveConnectionType

EFFECTIVE_CONNECTION_TYPE_SLOW_2G

const val EFFECTIVE_CONNECTION_TYPE_SLOW_2G = 2: Int

Die Schätzung des effektiven Verbindungstyps ist „Langsame 2G-Verbindung“.

Weitere Informationen
getEffectiveConnectionType

EFFECTIVE_CONNECTION_TYPE_UNKNOWN

const val EFFECTIVE_CONNECTION_TYPE_UNKNOWN = 0: Int

Die Schätzung des effektiven Verbindungstyps ist unbekannt.

Weitere Informationen
getEffectiveConnectionType

UNBIND_NETWORK_HANDLE

const val UNBIND_NETWORK_HANDLE = -1: Long

Der Wert, der zum Aufheben einer vorherigen Netzwerkbindung verwendet werden soll.

Öffentliche Konstruktoren

CronetEngine

CronetEngine()

Öffentliche Funktionen

addRequestFinishedListener

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

Registriert einen Listener, der nach dem Ende jeder Anfrage mit den Anfrageinformationen aufgerufen wird.

Der Listener wird für ein java.util.concurrent.Executor aufgerufen, das vom Listener bereitgestellt wird.

Parameter
listener: RequestFinishedInfo.Listener!

Der Listener für abgeschlossene Anfragen.

addRttListener

fun addRttListener(listener: NetworkQualityRttListener!): Unit

Registriert einen Listener, der aufgerufen wird, wenn der Schätzer für die Netzwerkqualität eine Stichproben-Roundtrip-Zeit erfasst. Diese Methode muss nach enableNetworkQualityEstimator aufgerufen werden. Andernfalls wird eine Ausnahme ausgelöst. Die Round-Trip-Zeiten können auf verschiedenen Ebenen des Netzwerk-Stacks aufgezeichnet werden, einschließlich TCP, QUIC und auf der Ebene der URL-Anfrage. Der Listener wird für das java.util.concurrent.Executor aufgerufen, das an enableNetworkQualityEstimator übergeben wird.

Parameter
listener: NetworkQualityRttListener!

der Listener für Umlaufzeiten.

addThroughputListener

fun addThroughputListener(listener: NetworkQualityThroughputListener!): Unit

Registriert einen Listener, der aufgerufen wird, wenn der Schätzer für die Netzwerkqualität eine Messung des Durchsatzes einer Stichprobe beobachtet. Diese Funktion muss nach enableNetworkQualityEstimator aufgerufen werden. Der Durchsatz wird berechnet, indem die über die aktive Netzwerkschnittstelle gelesenen Byte zu Zeiten gemessen werden, zu denen mindestens eine URL-Antwort empfangen wird. Der Listener wird für das java.util.concurrent.Executor aufgerufen, das an enableNetworkQualityEstimator übergeben wird.

Parameter
listener: NetworkQualityThroughputListener!

der Listener für den Durchsatz.

bindToNetwork

fun bindToNetwork(networkHandle: Long): Unit

Bindet die Engine an das angegebene Netzwerk-Handle. Für alle Anfragen, die über diese Engine erstellt werden, wird das mit diesem Alias verknüpfte Netzwerk verwendet. Wenn die Verbindung zum Netzwerk getrennt wird, schlagen alle Anfragen fehl. Der genaue Fehler hängt davon ab, in welcher Phase der Anfrageverarbeitung die Verbindung zum Netzwerk getrennt wird. Netzwerk-Handles können über Network#getNetworkHandle abgerufen werden. Nur ab Android Marshmallow verfügbar.

Parameter
networkHandle: Long

Der Netzwerk-Handle, an den die Engine gebunden werden soll. Geben Sie UNBIND_NETWORK_HANDLE an, um die Bindung aufzuheben.

configureNetworkQualityEstimatorForTesting

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

Konfiguriert den Schätzer für die Netzwerkqualität für Tests. Diese Methode muss aufgerufen werden, bevor Listener für die Round-Trip-Zeit und den Durchsatz hinzugefügt werden, und nachdem der Schätzer für die Netzwerkqualität aktiviert wurde.

Parameter
useLocalHostRequests: Boolean

Anfragen an „localhost“ in Schätzungen einbeziehen.

useSmallerResponses: Boolean

kleine Antworten in Durchsatzschätzungen einbeziehen.

disableOfflineCheck: Boolean

Wenn „true“ festgelegt ist, werden die Offlineprüfungen des Geräts beim Berechnen des effektiven Verbindungstyps oder beim Schreiben der Einstellungen deaktiviert.

createURLStreamHandlerFactory

abstract fun createURLStreamHandlerFactory(): URLStreamHandlerFactory!

Erstellt eine URLStreamHandlerFactory zur Verarbeitung von HTTP- und HTTPS-Traffic. Eine Instanz dieser Klasse kann über setURLStreamHandlerFactory installiert werden. Diese CronetEngine wird dann standardmäßig für alle Anfragen verwendet, die über openConnection erstellt werden.

Cronet verwendet bestimmte HTTP-Funktionen, die über das System bereitgestellt werden, nicht:

Cronet unterstützt und empfiehlt zwar Anfragen über das HTTPS-Protokoll, bietet aber keine Unterstützung für die HttpsURLConnection API. Diese fehlende Unterstützung umfasst auch die Nichtverwendung bestimmter HTTPS-Funktionen, die über das System bereitgestellt werden:

Gibt Folgendes zurück:
URLStreamHandlerFactory!

eine URLStreamHandlerFactory-Instanz, die von dieser CronetEngine implementiert wird.

getActiveRequestCount

fun getActiveRequestCount(): Int

Gibt die Anzahl der aktiven Anfragen zurück.

Eine Anfrage wird mit UrlRequest.start() „aktiv“, sofern für diese Methode keine Ausnahme ausgelöst wird. Sie wird inaktiv, wenn alle Callbacks zurückgegeben wurden und keine zusätzlichen Callbacks mehr ausgelöst werden können. In der Praxis bedeutet das, dass die Anfrage inaktiv ist, sobald „onSucceeded“/„onCanceled“/„onFailed“ zurückgegeben wurde und alle Listener für abgeschlossene Anfragen zurückgegeben wurden. Weitere Informationen finden Sie unter Lebenszyklus von Cronet-Anfragen.

getDownstreamThroughputKbps

fun getDownstreamThroughputKbps(): Int

Gibt die vom Schätzer für die Netzwerkqualität berechnete Schätzung für den Downstream-Durchsatz (in Kilobit pro Sekunde) zurück. Legen Sie den Wert auf CONNECTION_METRIC_UNKNOWN fest, wenn er nicht verfügbar ist. Diese Methode muss nach enableNetworkQualityEstimator aufgerufen werden. Andernfalls wird eine Ausnahme ausgelöst.

Gibt Folgendes zurück:
Int

Schätzung des Downstream-Durchsatzes in Kilobit pro Sekunde.

getEffectiveConnectionType

fun getEffectiveConnectionType(): Int

Gibt eine Schätzung des effektiven Verbindungstyps zurück, der vom Schätzer für die Netzwerkqualität berechnet wurde. Rufen Sie enableNetworkQualityEstimator auf, um diesen Wert zu berechnen.

Gibt Folgendes zurück:
Int

Der geschätzte Verbindungstyp. Der zurückgegebene Wert ist einer der folgenden: EFFECTIVE_CONNECTION_TYPE_* .

getGlobalMetricsDeltas

abstract fun getGlobalMetricsDeltas(): ByteArray<Byte>!

getHttpRttMs

fun getHttpRttMs(): Int

Gibt die vom Schätzer für die Netzwerkqualität berechnete geschätzte HTTP-RTT (in Millisekunden) zurück. Legen Sie den Wert auf CONNECTION_METRIC_UNKNOWN fest, wenn er nicht verfügbar ist. Diese Methode muss nach enableNetworkQualityEstimator aufgerufen werden. Andernfalls wird eine Ausnahme ausgelöst.

Gibt Folgendes zurück:
Int

Schätzung der HTTP-RTT in Millisekunden.

getTransportRttMs

fun getTransportRttMs(): Int

Gibt die vom Schätzer für die Netzwerkqualität berechnete geschätzte Transport-RTT (in Millisekunden) zurück. Legen Sie den Wert auf CONNECTION_METRIC_UNKNOWN fest, wenn er nicht verfügbar ist. Diese Methode muss nach enableNetworkQualityEstimator aufgerufen werden. Andernfalls wird eine Ausnahme ausgelöst.

Gibt Folgendes zurück:
Int

Schätzung der Transport-RTT in Millisekunden.

getVersionString

abstract fun getVersionString(): String!
Gibt Folgendes zurück:
String!

Ein für Menschen lesbarer Versionsstring der Engine.

newUrlRequestBuilder

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

Erstellt einen Builder für UrlRequest. Alle Callbacks für generierte UrlRequest-Objekte werden in den Threads von executor aufgerufen. executor darf keine Aufgaben im Thread ausführen, der execute aufruft, um Netzwerkoperationen nicht zu blockieren und Ausnahmen beim Herunterfahren zu vermeiden.

Parameter
url: String!

URL für die generierten Anfragen.

callback: UrlRequest.Callback!

Callback-Objekt, das bei verschiedenen Ereignissen aufgerufen wird.

executor: Executor!

Executor, in dem alle Callbacks aufgerufen werden.

openConnection

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

Stellt eine neue Verbindung zur Ressource her, die durch URLurl angegeben wird.

Hinweis:Die java.net.HttpURLConnection-Implementierung von Cronet unterliegt bestimmten Einschränkungen. Weitere Informationen finden Sie unter createURLStreamHandlerFactory.

Parameter
url: URL!

URL der Ressource, zu der eine Verbindung hergestellt werden soll.

Gibt Folgendes zurück:
URLConnection!

eine java.net.HttpURLConnection-Instanz, die von dieser CronetEngine implementiert wird.

Löst aus
java.io.IOException

wenn beim Öffnen der Verbindung ein Fehler auftritt.

removeRequestFinishedListener

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

Entfernt einen Listener für abgeschlossene Anfragen.

Parameter
listener: RequestFinishedInfo.Listener!

Der zu entfernende Listener.

removeRttListener

fun removeRttListener(listener: NetworkQualityRttListener!): Unit

Entfernt einen Listener für Round-Trip-Zeiten, wenn er zuvor mit addRttListener registriert wurde. Diese Methode sollte aufgerufen werden, nachdem ein NetworkQualityRttListener hinzugefügt wurde, um keine Beobachtungen mehr zu empfangen.

Parameter
listener: NetworkQualityRttListener!

der Listener für Umlaufzeiten.

removeThroughputListener

fun removeThroughputListener(listener: NetworkQualityThroughputListener!): Unit

Entfernt einen Listener für den Durchsatz. Diese Methode sollte aufgerufen werden, nachdem ein NetworkQualityThroughputListener mit addThroughputListener hinzugefügt wurde, um keine Beobachtungen mehr zu empfangen.

Parameter
listener: NetworkQualityThroughputListener!

der Listener für den Durchsatz.

shutdown

abstract fun shutdown(): Unit

Fährt CronetEngine herunter, wenn keine aktiven Anfragen vorhanden sind. Andernfalls wird eine Ausnahme ausgelöst.

Kann nicht im Netzwerk-Thread aufgerufen werden – der Thread, in dem Cronet den Executor aufruft (der sich vom Thread unterscheidet, in dem der Executor Callbacks aufruft). Die Funktion wird möglicherweise blockiert, bis alle Ressourcen des CronetEngine bereinigt wurden.

startNetLogToDisk

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

Startet die NetLog-Protokollierung in einem angegebenen Verzeichnis mit einer begrenzten Größe. Das NetLog enthält Ereignisse, die von allen aktiven CronetEngines ausgegeben werden. Das NetLog ist für das Debugging nützlich. Sobald die Protokollierung beendet wurde stopNetLog, werden die Daten in dirPath in die Datei „netlog.json“ geschrieben. Wenn die Protokollierung unterbrochen wird, können Sie die Dateien im Unterverzeichnis „.inprogress“ manuell zusammenfügen. Verwenden Sie dazu https://chromium.googlesource.com/chromium/src/+/main/net/tools/stitch_net_log_files.py. Das Protokoll kann in einem Chrome-Browser unter chrome://net-internals/#import aufgerufen werden.

Parameter
dirPath: String!

Das Verzeichnis, in dem die Datei „netlog.json“ erstellt wird. „dirPath“ muss bereits vorhanden sein. NetLog-Dateien dürfen nicht im Verzeichnis vorhanden sein. Wenn aktiv protokolliert wird, wird diese Methode ignoriert.

logAll: Boolean

true, um grundlegende Ereignisse, Nutzer-Cookies, Anmeldedaten und alle übertragenen Byte in das Log aufzunehmen. Diese Option birgt ein Datenschutzrisiko, da die Anmeldedaten des Nutzers offengelegt werden. Sie sollte nur mit Zustimmung des Nutzers und in Situationen verwendet werden, in denen das Log nicht öffentlich ist. false, um nur grundlegende Ereignisse einzuschließen.

maxSize: Int

Die maximale Gesamtzahl der Byte an Speicherplatz, die von NetLog verwendet werden sollen. Die tatsächliche Speicherplatznutzung kann dieses Limit geringfügig überschreiten.

startNetLogToFile

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

Startet die NetLog-Protokollierung in einer Datei. Das NetLog enthält Ereignisse, die von allen aktiven CronetEngines ausgegeben werden. Das NetLog ist für das Debugging nützlich. Die Datei kann in einem Chrome-Browser unter chrome://net-internals/#import aufgerufen werden.

Parameter
fileName: String!

der vollständige Dateipfad. Darf nicht leer sein. Wenn die Datei vorhanden ist, wird sie vor dem Start abgeschnitten. Wenn aktiv protokolliert wird, wird diese Methode ignoriert.

logAll: Boolean

true, um grundlegende Ereignisse, Nutzer-Cookies, Anmeldedaten und alle übertragenen Byte in das Log aufzunehmen. Diese Option birgt ein Datenschutzrisiko, da die Anmeldedaten des Nutzers offengelegt werden. Sie sollte nur mit Zustimmung des Nutzers und in Situationen verwendet werden, in denen das Log nicht öffentlich ist. false, um nur grundlegende Ereignisse einzuschließen.

stopNetLog

abstract fun stopNetLog(): Unit

Beendet die NetLog-Protokollierung und schreibt die Datei auf die Festplatte. Wenn keine Protokollierungssitzung läuft, wird dieser Aufruf ignoriert.