CronetEngine

abstract class CronetEngine

Bekannte direkte Unterklassen
Bekannte indirekte Unterklassen

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

Zusammenfassung

Verschachtelte Typen

Ein Builder für CronetEngine, mit dem CronetEngine zur Laufzeit konfiguriert werden kann.

Diese Klasse wurde eingestellt.

System.loadLibrary war bei minSDK <= 23 nicht zuverlässig. Diese Methode wurde verwendet, um alternative, zuverlässigere Loader bereitzustellen.

Konstanten

const Int

Der Wert der Anzahl aktiver Anfragen ist unbekannt

const Int

Der Wert eines Verbindungsmesswerts ist unbekannt.

const Int

Die Schätzung des effektiven Verbindungstyps 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 verwendet werden soll, um eine vorherige Netzwerkbindung aufzuheben.

Ö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 Beispiel-Roundtrip-Zeit erfasst.

Unit

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

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 ein 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 geschätzte Downstream-Bandbreite (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 wird.

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 die 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

Die Schätzung des effektiven Verbindungstyps 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 verwendet werden soll, um eine vorherige Netzwerkbindung aufzuheben.

Ö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 auf einem java.util.concurrent.Executor aufgerufen, der 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 Beispiel-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 Netzwerkstacks 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 erfasst. Diese Methode muss nach enableNetworkQualityEstimator aufgerufen werden. Die Durchsatzbeobachtungen werden 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 getrennt wird, schlagen alle Anfragen fehl. Der genaue Fehler hängt davon ab, in welcher Phase der Anfrageverarbeitung die Verbindung 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 Offline-Prüfungen des Geräts beim Berechnen des effektiven Verbindungstyps oder beim Schreiben der Einstellungen deaktiviert.

createURLStreamHandlerFactory

abstract fun createURLStreamHandlerFactory(): URLStreamHandlerFactory!

Erstellt ein 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 Anfragen mit dem 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 diese Methode keine Ausnahme auslöst. Es wird inaktiv, wenn alle Callbacks zurückgegeben wurden und in Zukunft keine weiteren Callbacks 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 geschätzte Downstream-Durchsatzrate (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 wird. 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

Geschätzte 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 blockierende Netzwerkoperationen 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, auf 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 die 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). Kann blockieren, 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 nützlich für die Fehlerbehebung. 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 das Logging aktiv ist, wird diese Methode ignoriert.

logAll: Boolean

true, um grundlegende Ereignisse, Nutzer-Cookies, Anmeldedaten und alle übertragenen Bytes 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

Der maximale Gesamtspeicherplatz in Byte, der von NetLog verwendet werden soll. 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 nützlich für die Fehlerbehebung. Die Datei kann in einem Chrome-Browser unter chrome://net-internals/#import aufgerufen werden.

Parameter
fileName: String!

den vollständigen Dateipfad. Darf nicht leer sein. Wenn die Datei vorhanden ist, wird sie vor dem Start abgeschnitten. Wenn das Logging aktiv ist, wird diese Methode ignoriert.

logAll: Boolean

true, um grundlegende Ereignisse, Nutzer-Cookies, Anmeldedaten und alle übertragenen Bytes 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 Logging-Sitzung läuft, wird dieser Aufruf ignoriert.