CronetEngine.Builder

public 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

static final int

Einstellung zum Deaktivieren des HTTP-Cache.

static final int

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

static final int

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

static final int

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

Geschützte Felder

JSONObject

JSON-Darstellung der experimentellen Optionen.

Öffentliche Konstruktoren

Builder(Context context)

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

Öffentliche Methoden

CronetEngine.Builder
addPublicKeyPins(
    String hostName,
    Set<byte[]> pinsSha256,
    boolean includeSubdomains,
    Date expirationDate
)

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

CronetEngine.Builder
addQuicHint(String host, int port, int alternatePort)

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

CronetEngine

Erstellt ein CronetEngine mit der Konfiguration dieses Builders.

CronetEngine.Builder
enableBrotli(boolean value)

Legt fest, ob die Brotli-Komprimierung aktiviert ist.

CronetEngine.Builder
enableHttp2(boolean value)

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

CronetEngine.Builder
enableHttpCache(int cacheMode, long maxSize)

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
enableQuic(boolean value)

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
setThreadPriority(int priority)

Diese Methode wurde eingestellt.

In modernen Versionen von Cronet hat diese Methode keine Auswirkungen.

CronetEngine.Builder
setUserAgent(String userAgent)

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

Konstanten

HTTP_CACHE_DISABLED

public static final int HTTP_CACHE_DISABLED = 0

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

HTTP_CACHE_DISK

public static final int HTTP_CACHE_DISK = 3

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

public static final int HTTP_CACHE_DISK_NO_HTTP = 2

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

public static final int HTTP_CACHE_IN_MEMORY = 1

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

Geschützte Felder

mParsedExperimentalOptions

protected JSONObject mParsedExperimentalOptions

JSON-Darstellung der experimentellen Optionen.

Öffentliche Konstruktoren

Builder

public 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 Methoden

addPublicKeyPins

public CronetEngine.Builder addPublicKeyPins(
    String hostName,
    Set<byte[]> pinsSha256,
    boolean includeSubdomains,
    Date expirationDate
)

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
String hostName

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.

Set<byte[]> pinsSha256

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.

boolean includeSubdomains

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

Date expirationDate

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

public CronetEngine.Builder addQuicHint(String host, int port, int alternatePort)

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
String host

Der Hostname des Servers, der QUIC unterstützt.

int port

Host des Servers, der QUIC unterstützt.

int alternatePort

Alternativer Port für QUIC.

Gibt Folgendes zurück:
CronetEngine.Builder

Der Builder, um die Verkettung zu ermöglichen.

Build

public CronetEngine build()

Erstellt ein CronetEngine mit der Konfiguration dieses Builders.

Gibt Folgendes zurück:
CronetEngine

CronetEngine erstellt.

enableBrotli

public CronetEngine.Builder enableBrotli(boolean value)

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
boolean value

true zum Aktivieren von Brotli, false zum Deaktivieren.

Gibt Folgendes zurück:
CronetEngine.Builder

Der Builder, um die Verkettung zu ermöglichen.

enableHttp2

public CronetEngine.Builder enableHttp2(boolean value)

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

Parameter
boolean value

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

Gibt Folgendes zurück:
CronetEngine.Builder

Der Builder, um die Verkettung zu ermöglichen.

enableHttpCache

public CronetEngine.Builder enableHttpCache(int cacheMode, long maxSize)

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

Parameter
int cacheMode

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

long maxSize

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

public CronetEngine.Builder enableNetworkQualityEstimator(boolean value)

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
boolean value

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

public CronetEngine.Builder enablePublicKeyPinningBypassForLocalTrustAnchors(boolean value)

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
boolean value

true zum Aktivieren der Umgehung, false zum Deaktivieren.

Gibt Folgendes zurück:
CronetEngine.Builder

Der Builder, um die Verkettung zu ermöglichen.

enableQuic

public CronetEngine.Builder enableQuic(boolean value)

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
boolean value

true zum Aktivieren von QUIC, false zum Deaktivieren.

Gibt Folgendes zurück:
CronetEngine.Builder

Der Builder, um die Verkettung zu ermöglichen.

getDefaultUserAgent

public String getDefaultUserAgent()

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
public CronetEngine.Builder setConnectionMigrationOptions(
    ConnectionMigrationOptions.Builder connectionMigrationOptionsBuilder
)
Weitere Informationen
setConnectionMigrationOptions

setConnectionMigrationOptions

@ConnectionMigrationOptions.Experimental
public CronetEngine.Builder setConnectionMigrationOptions(
    ConnectionMigrationOptions connectionMigrationOptions
)

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
public CronetEngine.Builder setDnsOptions(DnsOptions dnsOptions)

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
public CronetEngine.Builder setDnsOptions(DnsOptions.Builder dnsOptions)
Weitere Informationen
setDnsOptions

setLibraryLoader

public CronetEngine.Builder setLibraryLoader(CronetEngine.Builder.LibraryLoader loader)

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

Parameter
CronetEngine.Builder.LibraryLoader loader

LibraryLoader zum Laden der nativen Bibliothek verwendet werden.

Gibt Folgendes zurück:
CronetEngine.Builder

Der Builder, um die Verkettung zu ermöglichen.

setProxyOptions

public CronetEngine.Builder setProxyOptions(@NonNull ProxyOptions proxyOptions)

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
@NonNull 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
public CronetEngine.Builder setQuicOptions(QuicOptions.Builder quicOptionsBuilder)
Weitere Informationen
setQuicOptions

setQuicOptions

@QuicOptions.Experimental
public CronetEngine.Builder setQuicOptions(QuicOptions quicOptions)

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

public CronetEngine.Builder setStoragePath(String value)

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
String value

Pfad zu einem vorhandenen Verzeichnis.

Gibt Folgendes zurück:
CronetEngine.Builder

Der Builder, um die Verkettung zu ermöglichen.

setThreadPriority

public CronetEngine.Builder setThreadPriority(int priority)

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

Parameter
int priority

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

public CronetEngine.Builder setUserAgent(String userAgent)

Ü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
String userAgent

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.