CronetEngine.Builder

public class CronetEngine.Builder


Ein Builder für CronetEngine, mit dem CronetEngine zur Laufzeit konfiguriert werden kann. Konfigurationsoptionen werden im Builder festgelegt und dann wird build aufgerufen, um die CronetEngine zu erstellen.

Zusammenfassung

Verschachtelte Typen

Diese Klasse wurde eingestellt.

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

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 sich ein CronetEngine erstellen lässt.

Öffentliche Methoden

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

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

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

Es wurde ein Hinweis hinzugefügt, 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 Round-Trip-Zeit (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 Anwendungsname und ‑version, Systembuildversion, Modell und 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

Diese Methode wurde eingestellt.

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

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 bewirkt diese Methode nichts.

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 sich ein CronetEngine erstellen lässt. 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
)

Pinnt eine Reihe öffentlicher Schlüssel für einen bestimmten Host an. Durch das Anpinnen einer Reihe öffentlicher Schlüssel, 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 Subject Public Key Info (SPKI) 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 Pinning-Richtlinie auf Subdomains von hostName angewendet werden soll.

Date expirationDate

gibt das Ablaufdatum für die Pins an.

Gibt Folgendes zurück:
CronetEngine.Builder

den Builder, um die Verkettung zu erleichtern.

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)

Es wurde ein Hinweis hinzugefügt, 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

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

den Builder, um die Verkettung zu erleichtern.

Build

public CronetEngine build()

Erstellt ein CronetEngine mit der Konfiguration dieses Builders.

Gibt Folgendes zurück:
CronetEngine

erstellt am CronetEngine.

enableBrotli

public CronetEngine.Builder enableBrotli(boolean value)

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

Parameter
boolean value

true zum Aktivieren von Brotli, false zum Deaktivieren.

Gibt Folgendes zurück:
CronetEngine.Builder

den Builder, um die Verkettung zu erleichtern.

enableHttp2

public CronetEngine.Builder enableHttp2(boolean value)

Legt fest, ob das HTTP/2-Protokoll aktiviert ist. Die Standardeinstellung ist „Aktiviert“.

Parameter
boolean value

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

Gibt Folgendes zurück:
CronetEngine.Builder

den Builder, um die Verkettung zu erleichtern.

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

Sie können den Speicherort und den Typ 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

den Builder, um die Verkettung zu erleichtern.

enableNetworkQualityEstimator

public CronetEngine.Builder enableNetworkQualityEstimator(boolean value)

Aktiviert die Schätzung der Netzwerkqualität. Dabei werden Messungen der Round-Trip-Zeit (RTT) und des Downstream-Durchsatzes auf verschiedenen Ebenen des Netzwerk-Stacks erfasst und gemeldet. Nachdem Sie den Schätzer aktiviert haben, können Sie mit addRttListener und addThroughputListener Listener für RTT und Durchsatz hinzufügen und mit removeRttListener und removeThroughputListener entfernen. 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

den Builder, um die Verkettung zu erleichtern.

enablePublicKeyPinningBypassForLocalTrustAnchors

public CronetEngine.Builder enablePublicKeyPinningBypassForLocalTrustAnchors(boolean value)

Aktiviert oder deaktiviert das Umgehen des Public-Key-Pinning für lokale Vertrauensanker. Es wird dringend davon abgeraten, die Umgehung für lokale Vertrauensanker zu deaktivieren, da die App sonst möglicherweise nicht mit den angepinnten Hosts kommunizieren 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, kann die App höchstwahrscheinlich keinen Traffic 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?) unter 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

den Builder, um die Verkettung zu erleichtern.

enableQuic

public CronetEngine.Builder enableQuic(boolean value)

Legt fest, ob das QUIC-Protokoll aktiviert ist. Die Standardeinstellung ist „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

den Builder, um die Verkettung zu erleichtern.

getDefaultUserAgent

public String getDefaultUserAgent()

Erstellt einen User-Agent-String, der Anwendungsname und ‑version, Systembuildversion, Modell und 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

den Builder, um die Verkettung zu erleichtern.

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

den Builder, um die Verkettung zu erleichtern.

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

den Builder, um die Verkettung zu erleichtern.

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 der Proxykonfiguration, die vom Nutzer, durch eine Unternehmensprofilkonfiguration oder (höchstwahrscheinlich) durch eine automatische Netzwerkkonfiguration (z.B. Web Proxy Auto-Discovery Protocol) eingerichtet wurde. Dies wird in der Regel als „System“-Proxykonfiguration bezeichnet. Wenn 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 Proxy-Konfiguration wird als „App“-Proxy-Konfiguration bezeichnet. Die Proxykonfiguration für Apps und das System ist separat und vor allem unterschiedlich. Derzeit schließen sich App- und Systemproxykonfigurationen gegenseitig aus: Wenn ProxyOptions angegeben wird, wird die Systemproxykonfiguration ü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, sofern ProxyOptions nicht mit einem finalen null-Fallback konfiguriert wurde. 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 wurden, der von diesem Builder erstellt wurde.

Gibt Folgendes zurück:
CronetEngine.Builder

den Builder, um die Verkettung zu erleichtern.

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

den Builder, um die Verkettung zu erleichtern.

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

den Builder, um die Verkettung zu erleichtern.

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 Scheduling-Priorität 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

den Builder, um die Verkettung zu erleichtern.

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

den Builder, um die Verkettung zu erleichtern.