CronetEngine.Builder

class CronetEngine.Builder


Ein Builder für CronetEngine, der die Laufzeitkonfiguration von CronetEngine ermöglicht. Konfigurationsoptionen werden für den Builder festgelegt und dann wird build aufgerufen, um das CronetEngine zu erstellen.

Zusammenfassung

Verschachtelte Typen

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

Konstanten

const Int

Einstellung zum Deaktivieren des HTTP-Cache.

const Int

Einstellung zum Aktivieren des On-Disk-Cache, einschließlich HTTP-Daten.

const Int

Einstellung zum Aktivieren des On-Disk-Cache, ausgenommen HTTP-Daten.

const Int

Einstellung zum Aktivieren des In-Memory-HTTP-Cache, einschließlich HTTP-Daten.

Öffentliche Konstruktoren

Builder(context: Context!)

Erstellt ein Builder-Objekt, mit dem ein CronetEngine erstellt werden kann.

Öffentliche Funktionen

CronetEngine.Builder!
addPublicKeyPins(
    hostName: String!,
    pinsSha256: (Mutable)Set<ByteArray!>!,
    includeSubdomains: Boolean,
    expirationDate: Date!
)

Pint eine Reihe öffentlicher Schlüssel für einen bestimmten Host an.

CronetEngine.Builder!
addQuicHint(host: String!, port: Int, alternatePort: Int)

Fügt einen Hinweis hinzu, dass host QUIC unterstützt.

CronetEngine!

Erstellt ein CronetEngine mit der Konfiguration dieses Builders.

CronetEngine.Builder!

Legt fest, ob die Brotli-Komprimierung aktiviert ist.

CronetEngine.Builder!

Legt fest, ob das HTTP/2-Protokoll aktiviert ist.

CronetEngine.Builder!
enableHttpCache(cacheMode: Int, maxSize: Long)

Aktiviert oder deaktiviert das Caching von HTTP-Daten und anderen Informationen wie QUIC-Serverinformationen.

CronetEngine.Builder!

Aktiviert die Schätzung der Netzwerkqualität. Dabei werden Messungen der Umlaufzeit (Round Trip Time, RTT) und des Downstream-Durchsatzes auf verschiedenen Ebenen des Netzwerk-Stacks erfasst und gemeldet.

CronetEngine.Builder!

Aktiviert oder deaktiviert das Umgehen des Public-Key-Pinning für lokale Vertrauensanker.

CronetEngine.Builder!

Legt fest, ob das QUIC-Protokoll aktiviert ist.

String!

Erstellt einen User-Agent-String, der den Anwendungsnamen und die Version, die Systembuild-Version, das Modell und die ID sowie die Cronet-Version enthält.

CronetEngine.Builder!
CronetEngine.Builder!

Konfiguriert das Verhalten der Verbindungsmigration.

CronetEngine.Builder!

Konfiguriert das Verhalten der Hostnamensuche.

CronetEngine.Builder!
CronetEngine.Builder!

Legt einen LibraryLoader fest, der zum Laden der nativen Bibliothek verwendet werden soll.

CronetEngine.Builder!

Konfiguriert das Proxying-Verhalten.

CronetEngine.Builder!
CronetEngine.Builder!

Konfiguriert das Verhalten von Cronet bei Verwendung von QUIC.

CronetEngine.Builder!

Legt das Verzeichnis für den HTTP-Cache und die Cookie-Speicherung fest.

CronetEngine.Builder!

Diese Funktion wurde eingestellt.

In modernen Versionen von Cronet hat diese Methode keine Auswirkungen.

CronetEngine.Builder!
setUserAgent(userAgent: String!)

Überschreibt den User-Agent-Header für alle Anfragen.

Geschützte Properties

JSONObject!

JSON-Darstellung der experimentellen Optionen.

Konstanten

HTTP_CACHE_DISABLED

const val HTTP_CACHE_DISABLED = 0: Int

Einstellung zum Deaktivieren des HTTP-Cache. Einige Daten können weiterhin vorübergehend im Arbeitsspeicher gespeichert werden. An enableHttpCache weitergeleitet.

HTTP_CACHE_DISK

const val HTTP_CACHE_DISK = 3: Int

Einstellung zum Aktivieren des On-Disk-Cache, einschließlich HTTP-Daten. setStoragePath muss aufgerufen werden, bevor diese Konstante an enableHttpCache übergeben wird.

HTTP_CACHE_DISK_NO_HTTP

const val HTTP_CACHE_DISK_NO_HTTP = 2: Int

Einstellung zum Aktivieren des On-Disk-Cache, ausgenommen HTTP-Daten. setStoragePath muss aufgerufen werden, bevor diese Konstante an enableHttpCache übergeben wird.

HTTP_CACHE_IN_MEMORY

const val HTTP_CACHE_IN_MEMORY = 1: Int

Einstellung zum Aktivieren des In-Memory-HTTP-Cache, einschließlich HTTP-Daten. An enableHttpCache weitergeleitet.

Öffentliche Konstruktoren

Builder

Builder(context: Context!)

Erstellt ein Builder-Objekt, mit dem ein CronetEngine erstellt werden kann. In der Standardkonfiguration sind HTTP/2 und QUIC aktiviert, der HTTP-Cache ist jedoch deaktiviert.

Parameter
context: Context!

Android Context, das von Builder verwendet wird, um den Anwendungskontext abzurufen. Es wird nur ein Verweis auf den Anwendungskontext beibehalten, um die Lebensdauer von context nicht unnötig zu verlängern.

Öffentliche Funktionen

addPublicKeyPins

fun addPublicKeyPins(
    hostName: String!,
    pinsSha256: (Mutable)Set<ByteArray!>!,
    includeSubdomains: Boolean,
    expirationDate: Date!
): CronetEngine.Builder!

Pint eine Reihe öffentlicher Schlüssel für einen bestimmten Host an. Durch das Anpinnen einer Reihe von öffentlichen Schlüsseln, pinsSha256, ist für die Kommunikation mit hostName eine Authentifizierung mit einem Zertifikat mit einem öffentlichen Schlüssel aus der Reihe der angepinnten Schlüssel erforderlich. Eine App kann den öffentlichen Schlüssel des Root-Zertifikats, eines der Zwischenzertifikate oder des End-Entry-Zertifikats anpinnen. Die Authentifizierung schlägt fehl und es wird keine sichere Kommunikation hergestellt, wenn keiner der öffentlichen Schlüssel in der Zertifikatskette des Hosts vorhanden ist, auch wenn der Host versucht, sich mit einem Zertifikat zu authentifizieren, das vom vertrauenswürdigen Zertifikatspeicher des Geräts zugelassen wird.

Wenn diese Methode mehrmals mit demselben Hostnamen aufgerufen wird, werden die zuvor festgelegten Pins für den Host überschrieben.

Weitere Informationen zum Public Key Pinning finden Sie in RFC 7469.

Parameter
hostName: String!

Name des Hosts, an den die öffentlichen Schlüssel angepinnt werden sollen. Ein Host, der nur aus Ziffern und dem Punktzeichen besteht, wird als ungültig behandelt.

pinsSha256: (Mutable)Set<ByteArray!>!

eine Reihe von Markierungen. Jeder Pin ist der kryptografische SHA-256-Hash der DER-codierten ASN.1-Darstellung der SPKI (Subject Public Key Info) des X.509-Zertifikats des Hosts. Verwenden Sie Certificate.getPublicKey() und Key.getEncoded(), um die DER-codierte ASN.1-Darstellung des SPKI abzurufen. Die Methode erfordert zwar nicht die Angabe der Sicherungs-PIN, die verwendet werden kann, wenn die Kontrolle über den primären privaten Schlüssel verloren gegangen ist, es wird jedoch dringend empfohlen, eine anzugeben.

includeSubdomains: Boolean

gibt an, ob die Richtlinie zum Anpinnen auf Subdomains von hostName angewendet werden soll.

expirationDate: Date!

gibt das Ablaufdatum für die Pins an.

Gibt Folgendes zurück:
CronetEngine.Builder!

Der Builder, um die Verkettung zu ermöglichen.

Löst aus
java.lang.NullPointerException

wenn einer der Eingabeparameter null ist.

java.lang.IllegalArgumentException

wenn der angegebene Hostname ungültig ist oder pinsSha256 ein Byte-Array enthält, das keinen gültigen SHA-256-Hash darstellt.

addQuicHint

fun addQuicHint(host: String!, port: Int, alternatePort: Int): CronetEngine.Builder!

Fügt einen Hinweis hinzu, dass host QUIC unterstützt. enableHttpCache (HTTP_CACHE_DISK) ist erforderlich, um die 0-RTT-Verbindungsherstellung zwischen Sitzungen nutzen zu können.

Parameter
host: String!

Der Hostname des Servers, der QUIC unterstützt.

port: Int

Host des Servers, der QUIC unterstützt.

alternatePort: Int

Alternativer Port für QUIC.

Gibt Folgendes zurück:
CronetEngine.Builder!

Der Builder, um die Verkettung zu ermöglichen.

Build

fun build(): CronetEngine!

Erstellt ein CronetEngine mit der Konfiguration dieses Builders.

Gibt Folgendes zurück:
CronetEngine!

CronetEngine erstellt.

enableBrotli

fun enableBrotli(value: Boolean): CronetEngine.Builder!

Legt fest, ob die Brotli-Komprimierung aktiviert ist. Wenn diese Option aktiviert ist, wird Brotli in Accept-Encoding-Anfrageheadern beworben. Die Standardeinstellung ist „disabled“.

Parameter
value: Boolean

true zum Aktivieren von Brotli, false zum Deaktivieren.

Gibt Folgendes zurück:
CronetEngine.Builder!

Der Builder, um die Verkettung zu ermöglichen.

enableHttp2

fun enableHttp2(value: Boolean): CronetEngine.Builder!

Legt fest, ob das HTTP/2-Protokoll aktiviert ist. Die Einstellung ist standardmäßig aktiviert.

Parameter
value: Boolean

true zum Aktivieren von HTTP/2, false zum Deaktivieren.

Gibt Folgendes zurück:
CronetEngine.Builder!

Der Builder, um die Verkettung zu ermöglichen.

enableHttpCache

fun enableHttpCache(cacheMode: Int, maxSize: Long): CronetEngine.Builder!

Aktiviert oder deaktiviert das Caching von HTTP-Daten und anderen Informationen wie QUIC-Serverinformationen.

Parameter
cacheMode: Int

Speicherort und Art der im Cache gespeicherten Daten festlegen. Dies muss einer der folgenden Werte sein: HTTP_CACHE_*.

maxSize: Long

Die maximale Größe in Byte, die zum Zwischenspeichern von Daten verwendet wird (empfohlen, kann aber manchmal überschritten werden).

Gibt Folgendes zurück:
CronetEngine.Builder!

Der Builder, um die Verkettung zu ermöglichen.

enableNetworkQualityEstimator

fun enableNetworkQualityEstimator(value: Boolean): CronetEngine.Builder!

Aktiviert die Schätzung der Netzwerkqualität. Dabei werden Messungen der Umlaufzeit (Round Trip Time, RTT) und des Downstream-Durchsatzes auf verschiedenen Ebenen des Netzwerk-Stacks erfasst und gemeldet. Nachdem der Schätzer aktiviert wurde, können mit addRttListener und addThroughputListener Listener für RTT und Durchsatz hinzugefügt und mit removeRttListener und removeThroughputListener entfernt werden. Der Schätzer verwendet Arbeitsspeicher und CPU nur, wenn er aktiviert ist.

Parameter
value: Boolean

true zum Aktivieren der Schätzung der Netzwerkqualität, false zum Deaktivieren.

Gibt Folgendes zurück:
CronetEngine.Builder!

Der Builder, um die Verkettung zu ermöglichen.

enablePublicKeyPinningBypassForLocalTrustAnchors

fun enablePublicKeyPinningBypassForLocalTrustAnchors(value: Boolean): CronetEngine.Builder!

Aktiviert oder deaktiviert das Umgehen des Public-Key-Pinning für lokale Vertrauensanker. Das Deaktivieren der Umgehung für lokale Vertrauensanker wird dringend abgeraten, da dadurch die Kommunikation der App mit den angepinnten Hosts verhindert werden kann. Ein Nutzer möchte beispielsweise den gesamten Traffic über einen SSL-fähigen Proxy senden, indem er die Proxy-Einstellungen des Geräts ändert und das Proxy-Zertifikat der Liste der lokalen Vertrauensanker hinzufügt. Wenn Sie die Umgehung deaktivieren, wird die App höchstwahrscheinlich keinen Traffic mehr an die angepinnten Hosts senden. Weitere Informationen finden Sie unter „How does key pinning interact with local proxies and filters?“ (Wie interagiert Key Pinning mit lokalen Proxys und Filtern?) auf https://www.chromium.org/Home/chromium-security/security-faq.

Parameter
value: Boolean

true zum Aktivieren der Umgehung, false zum Deaktivieren.

Gibt Folgendes zurück:
CronetEngine.Builder!

Der Builder, um die Verkettung zu ermöglichen.

enableQuic

fun enableQuic(value: Boolean): CronetEngine.Builder!

Legt fest, ob das QUIC-Protokoll aktiviert ist. Die Einstellung ist standardmäßig aktiviert. Wenn QUIC aktiviert ist, wird die QUIC-User-Agent-ID mit dem Anwendungsnamen und der Cronet-Version an den Server gesendet.

Parameter
value: Boolean

true zum Aktivieren von QUIC, false zum Deaktivieren.

Gibt Folgendes zurück:
CronetEngine.Builder!

Der Builder, um die Verkettung zu ermöglichen.

getDefaultUserAgent

fun getDefaultUserAgent(): String!

Erstellt einen User-Agent-String, der den Anwendungsnamen und die Version, die Systembuild-Version, das Modell und die ID sowie die Cronet-Version enthält.

Gibt Folgendes zurück:
String!

User-Agent-String.

setConnectionMigrationOptions

@ConnectionMigrationOptions.Experimental
fun setConnectionMigrationOptions(
    connectionMigrationOptionsBuilder: ConnectionMigrationOptions.Builder!
): CronetEngine.Builder!
Weitere Informationen
setConnectionMigrationOptions

setConnectionMigrationOptions

@ConnectionMigrationOptions.Experimental
fun setConnectionMigrationOptions(
    connectionMigrationOptions: ConnectionMigrationOptions!
): CronetEngine.Builder!

Konfiguriert das Verhalten der Verbindungsmigration. Weitere Informationen finden Sie in der Dokumentation zu ConnectionMigrationOptions und den einzelnen Methoden von ConnectionMigrationOptions.Builder.

Nur relevant, wenn enableQuic aktiviert ist.

Gibt Folgendes zurück:
CronetEngine.Builder!

Der Builder, um die Verkettung zu ermöglichen.

setDnsOptions

@DnsOptions.Experimental
fun setDnsOptions(dnsOptions: DnsOptions!): CronetEngine.Builder!

Konfiguriert das Verhalten der Hostnamensuche. Weitere Informationen finden Sie in der Dokumentation zu DnsOptions und den einzelnen Methoden von DnsOptions.Builder.

Nur relevant, wenn enableQuic aktiviert ist.

Gibt Folgendes zurück:
CronetEngine.Builder!

Der Builder, um die Verkettung zu ermöglichen.

setDnsOptions

@DnsOptions.Experimental
fun setDnsOptions(dnsOptions: DnsOptions.Builder!): CronetEngine.Builder!
Weitere Informationen
setDnsOptions

setLibraryLoader

fun setLibraryLoader(loader: CronetEngine.Builder.LibraryLoader!): CronetEngine.Builder!

Legt einen LibraryLoader fest, der zum Laden der nativen Bibliothek verwendet werden soll. Wenn nicht festgelegt, wird die Bibliothek mit loadLibrary geladen.

Parameter
loader: CronetEngine.Builder.LibraryLoader!

LibraryLoader zum Laden der nativen Bibliothek verwendet werden.

Gibt Folgendes zurück:
CronetEngine.Builder!

Der Builder, um die Verkettung zu ermöglichen.

setProxyOptions

fun setProxyOptions(proxyOptions: ProxyOptions): CronetEngine.Builder!

Konfiguriert das Proxying-Verhalten. Dies wirkt sich auf unterschiedliche Weise auf die Verbindungsherstellung, UrlRequest und BidirectionalStream aus. Weitere Informationen finden Sie in der Dokumentation zu Proxy.

Dies ist nicht zu verwechseln mit Proxykonfigurationen, die vom Nutzer, durch eine Unternehmensprofilkonfiguration oder (höchstwahrscheinlich) durch eine automatische Netzwerkkonfiguration (z.B. Web Proxy Auto-Discovery Protocol) eingerichtet wurden. Dies wird in der Regel als „System“-Proxykonfiguration bezeichnet. Falls vorhanden, ist die Berücksichtigung der Systemproxykonfiguration häufig eine Voraussetzung für die lokale und/oder Internetverbindung. Die Systemproxykonfiguration wird bereits intern von CronetEngine verarbeitet.

Eine über diese API definierte Proxykonfiguration wird als „App“-Proxykonfiguration bezeichnet. Die Proxykonfiguration für Apps und das System ist getrennt und unterscheidet sich vor allem. Derzeit schließen sich App- und System-Proxykonfigurationen gegenseitig aus: Wenn ProxyOptions angegeben wird, wird die System-Proxykonfiguration überschrieben, sofern vorhanden. Dies kann in einigen Szenarien, in denen eine Systemproxykonfiguration vorhanden ist, zu Verbindungsproblemen führen. In solchen Fällen haben Nutzer möglicherweise keinen Internetzugriff, es sei denn, ProxyOptions wurde mit einem finalen null-Fallback konfiguriert. Weitere Informationen finden Sie in der Dokumentation zu ProxyOptions.

Parameter
proxyOptions: ProxyOptions

ProxyOptions, die für UrlRequest, BiridirectionalStream und Verbindungen verwendet werden sollen, die vom CronetEngine erstellt werden, der von diesem Builder erstellt wird.

Gibt Folgendes zurück:
CronetEngine.Builder!

Der Builder, um die Verkettung zu ermöglichen.

Löst aus
java.lang.UnsupportedOperationException

wenn die verwendete Cronet-Implementierung zu alt ist, um ProxyOptions zu unterstützen.

setQuicOptions

@QuicOptions.Experimental
fun setQuicOptions(quicOptionsBuilder: QuicOptions.Builder!): CronetEngine.Builder!
Weitere Informationen
setQuicOptions

setQuicOptions

@QuicOptions.Experimental
fun setQuicOptions(quicOptions: QuicOptions!): CronetEngine.Builder!

Konfiguriert das Verhalten von Cronet bei Verwendung von QUIC. Weitere Informationen finden Sie in der Dokumentation zu QuicOptions und den einzelnen Methoden von QuicOptions.Builder.

Nur relevant, wenn enableQuic aktiviert ist.

Gibt Folgendes zurück:
CronetEngine.Builder!

Der Builder, um die Verkettung zu ermöglichen.

setStoragePath

fun setStoragePath(value: String!): CronetEngine.Builder!

Legt das Verzeichnis für den HTTP-Cache und die Cookie-Speicherung fest. Das Verzeichnis muss vorhanden sein.

HINWEIS:Verwenden Sie nicht dasselbe Speicherverzeichnis mit mehreren CronetEngine gleichzeitig. Der Zugriff auf das Speicherverzeichnis unterstützt keinen gleichzeitigen Zugriff durch mehrere CronetEngines.

Parameter
value: String!

Pfad zu einem vorhandenen Verzeichnis.

Gibt Folgendes zurück:
CronetEngine.Builder!

Der Builder, um die Verkettung zu ermöglichen.

setThreadPriority

fun setThreadPriority(priority: Int): CronetEngine.Builder!

Legt die Thread-Priorität des internen Threads von Cronet fest.

Parameter
priority: Int

Die Thread-Priorität des internen Threads von Cronet. Eine Linux-Prioritätsstufe, von -20 für die höchste bis 19 für die niedrigste Scheduling-Priorität. Weitere Informationen zu Werten finden Sie unter setThreadPriority- und THREAD_PRIORITY_*-Werte.

Gibt Folgendes zurück:
CronetEngine.Builder!

Der Builder, um die Verkettung zu ermöglichen.

setUserAgent

fun setUserAgent(userAgent: String!): CronetEngine.Builder!

Überschreibt den User-Agent-Header für alle Anfragen. Ein explizit festgelegter User-Agent-Header (mit addHeader festgelegt) überschreibt einen mit dieser Funktion festgelegten Wert.

Parameter
userAgent: String!

Der User-Agent-String, der für alle Anfragen verwendet werden soll.

Gibt Folgendes zurück:
CronetEngine.Builder!

Der Builder, um die Verkettung zu ermöglichen.

Geschützte Properties

mParsedExperimentalOptions

protected val mParsedExperimentalOptionsJSONObject!

JSON-Darstellung der experimentellen Optionen.