CronetEngine.Builder

public class CronetEngine.Builder


CronetEngine のビルダー。 CronetEngine のランタイム構成を可能にします。構成オプションはビルダーで設定され、build が呼び出されて CronetEngine が作成されます。

概要

ネストされた型

cronet ネイティブ ライブラリを読み込むメソッドを提供するクラス。

定数

static final int

HTTP キャッシュを無効にする設定。

static final int

HTTP データを含むディスク上のキャッシュを有効にする設定。

static final int

HTTP データを除くディスク上のキャッシュを有効にする設定。

static final int

HTTP データを含むインメモリ HTTP キャッシュを有効にする設定。

保護されたフィールド

JSONObject

試験運用版オプションの JSON 表現。

パブリック コンストラクタ

Builder(Context context)

CronetEngine の作成を容易にする Builder オブジェクトを構築します。

パブリック メソッド

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

指定されたホストの公開鍵のセットをピン留めします。

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

host が QUIC をサポートしていることを示すヒントを追加しました。

CronetEngine

このビルダーの構成を使用して CronetEngine をビルドします。

CronetEngine.Builder
enableBrotli(boolean value)

Brotli 圧縮を有効にするかどうかを設定します。

CronetEngine.Builder
enableHttp2(boolean value)

HTTP/2 プロトコルを有効にするかどうかを設定します。

CronetEngine.Builder
enableHttpCache(int cacheMode, long maxSize)

HTTP データや QUIC サーバー情報などの情報のキャッシュ保存を有効または無効にします。

CronetEngine.Builder

ネットワーク品質推定器を有効にします。この推定器は、ネットワーク スタックのさまざまなレイヤでラウンドトリップ時間(RTT)とダウンストリーム スループットの測定値を収集してレポートします。

CronetEngine.Builder

ローカル トラスト アンカーの公開鍵ピニング バイパスを有効または無効にします。

CronetEngine.Builder
enableQuic(boolean value)

QUIC プロトコルを有効にするかどうかを設定します。

String

アプリケーション名とバージョン、システム ビルド バージョン、モデルと ID、Cronet バージョンを含む User-Agent 文字列を構築します。

CronetEngine.Builder
CronetEngine.Builder

接続移行の動作を構成します。

CronetEngine.Builder

ホスト名ルックアップの動作を構成します。

CronetEngine.Builder
CronetEngine.Builder

ネイティブ ライブラリの読み込みに使用する LibraryLoader を設定します。

CronetEngine.Builder

プロキシの動作を構成します。

CronetEngine.Builder
CronetEngine.Builder

QUIC を使用する際の Cronet の動作を構成します。

CronetEngine.Builder

HTTP キャッシュと Cookie ストレージのディレクトリを設定します。

CronetEngine.Builder
setThreadPriority(int priority)

このメソッドは非推奨です。

最新バージョンの Cronet では、このメソッドは何も行いません。

CronetEngine.Builder
setUserAgent(String userAgent)

すべてのリクエストの User-Agent ヘッダーをオーバーライドします。

定数

HTTP_CACHE_DISABLED

public static final int HTTP_CACHE_DISABLED = 0

HTTP キャッシュを無効にする設定。一部のデータはメモリに一時的に保存されることがあります。enableHttpCache に渡されました。

HTTP_CACHE_DISK

public static final int HTTP_CACHE_DISK = 3

HTTP データを含むディスク上のキャッシュを有効にする設定。setStoragePath は、この定数を enableHttpCache に渡す前に呼び出す必要があります。

HTTP_CACHE_DISK_NO_HTTP

public static final int HTTP_CACHE_DISK_NO_HTTP = 2

HTTP データを除く、ディスク上のキャッシュを有効にする設定。setStoragePath は、この定数を enableHttpCache に渡す前に呼び出す必要があります。

HTTP_CACHE_IN_MEMORY

public static final int HTTP_CACHE_IN_MEMORY = 1

HTTP データを含むインメモリ HTTP キャッシュを有効にする設定。enableHttpCache に渡されました。

保護されたフィールド

mParsedExperimentalOptions

protected JSONObject mParsedExperimentalOptions

試験運用版オプションの JSON 表現。

パブリック コンストラクタ

Builder

public Builder(Context context)

CronetEngine の作成を容易にする Builder オブジェクトを構築します。デフォルトの構成では、HTTP/2 と QUIC が有効になり、HTTP キャッシュが無効になります。

パラメータ
Context context

Android ContextBuilder がアプリケーション コンテキストを取得するために使用します。context の有効期間が不必要に延長されないように、アプリケーション コンテキストのみへの参照が保持されます。

パブリック メソッド

addPublicKeyPins

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

指定されたホストの公開鍵のセットをピン留めします。公開鍵のセット pinsSha256 をピン留めすると、hostName との通信では、ピン留めされたセットの公開鍵を含む証明書で認証を行う必要があります。アプリは、ルート証明書、中間証明書、またはエンドエントリ証明書の公開鍵を固定できます。ホストがデバイスの信頼できる証明書ストアで許可されている証明書で認証を試みても、公開鍵がホストの証明書チェーンに存在しない場合、認証は失敗し、安全な通信は確立されません。

同じホスト名でこのメソッドを複数回呼び出すと、そのホストに対して以前に設定されたピンがオーバーライドされます。

公開鍵のピン留めについて詳しくは、RFC 7469 をご覧ください。

パラメータ
String hostName

公開鍵を固定するホストの名前。数字とドット文字のみで構成されるホストは無効と見なされます。

Set<byte[]> pinsSha256

ピンのセット。各ピンは、ホストの X.509 証明書の Subject Public Key Info(SPKI)の DER でエンコードされた ASN.1 表現の SHA-256 暗号ハッシュです。Certificate.getPublicKey()Key.getEncoded() を使用して、SPKI の DER エンコードされた ASN.1 表現を取得します。このメソッドでは、プライマリ秘密鍵の制御が失われた場合に使用できるバックアップ PIN の存在は義務付けられていませんが、提供することを強く推奨します。

boolean includeSubdomains

ピニング ポリシーを hostName のサブドメインに適用するかどうかを示します。

Date expirationDate

ピンの有効期限を指定します。

戻り値
CronetEngine.Builder

チェーンを容易にするためのビルダー。

例外
java.lang.NullPointerException

入力パラメータのいずれかが null の場合。

java.lang.IllegalArgumentException

指定されたホスト名が無効であるか、pinsSha256 に有効な SHA-256 ハッシュを表さないバイト配列が含まれている場合。

addQuicHint

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

host が QUIC をサポートしていることを示すヒントを追加しました。セッション間の 0-RTT 接続確立を利用するには、enableHttpCacheHTTP_CACHE_DISK)が必要です。

パラメータ
String host

QUIC をサポートするサーバーのホスト名。

int port

QUIC をサポートするサーバーのホスト。

int alternatePort

QUIC に使用する代替ポート。

戻り値
CronetEngine.Builder

チェーンを容易にするためのビルダー。

build

public CronetEngine build()

このビルダーの構成を使用して CronetEngine をビルドします。

戻り値
CronetEngine

CronetEngine を構築しました。

enableBrotli

public CronetEngine.Builder enableBrotli(boolean value)

Brotli 圧縮を有効にするかどうかを設定します。有効にすると、Brotli が Accept-Encoding リクエスト ヘッダーでアドバタイズされます。デフォルトは disabled です。

パラメータ
boolean value

Brotli を有効にするには true、無効にするには false

戻り値
CronetEngine.Builder

チェーンを容易にするためのビルダー。

enableHttp2

public CronetEngine.Builder enableHttp2(boolean value)

HTTP/2 プロトコルを有効にするかどうかを設定します。デフォルトは enabled です。

パラメータ
boolean value

HTTP/2 を有効にするには true、無効にするには false に設定します。

戻り値
CronetEngine.Builder

チェーンを容易にするためのビルダー。

enableHttpCache

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

HTTP データや QUIC サーバー情報などの情報のキャッシュ保存を有効または無効にします。

パラメータ
int cacheMode

キャッシュに保存するデータの場所と種類を制御できます。 HTTP_CACHE_* のいずれかにする必要があります。

long maxSize

データのキャッシュに使用される最大サイズ(バイト単位)(推奨値であり、超過する場合があります)。

戻り値
CronetEngine.Builder

チェーンを容易にするためのビルダー。

enableNetworkQualityEstimator

public CronetEngine.Builder enableNetworkQualityEstimator(boolean value)

ネットワーク品質推定器を有効にします。この推定器は、ネットワーク スタックのさまざまなレイヤでラウンドトリップ時間(RTT)とダウンストリーム スループットの測定値を収集してレポートします。推定ツールを有効にすると、RTT とスループットのリスナーを addRttListeneraddThroughputListener で追加し、removeRttListenerremoveThroughputListener で削除できます。エスティメータは、有効になっている場合にのみメモリと CPU を使用します。

パラメータ
boolean value

true でネットワーク品質推定ツールを有効にし、false で無効にします。

戻り値
CronetEngine.Builder

チェーンを容易にするためのビルダー。

enablePublicKeyPinningBypassForLocalTrustAnchors

public CronetEngine.Builder enablePublicKeyPinningBypassForLocalTrustAnchors(boolean value)

ローカル トラスト アンカーの公開鍵ピニング バイパスを有効または無効にします。ローカルの信頼済みアンカーのバイパスを無効にすると、アプリがピン留めされたホストと通信できなくなる可能性があるため、無効にすることは強く推奨されません。たとえば、ユーザーがデバイスのプロキシ設定を変更し、プロキシ証明書をローカル信頼アンカーのリストに追加することで、すべてのトラフィックを SSL 対応プロキシ経由で送信したい場合があります。バイパスを無効にすると、アプリが固定されたホストにトラフィックを送信できなくなる可能性が高くなります。詳しくは、https://www.chromium.org/Home/chromium-security/security-faq の「キーのピン留めはローカル プロキシやフィルタとどのように連携しますか?」をご覧ください。

パラメータ
boolean value

バイパスを有効にするには true、無効にするには false

戻り値
CronetEngine.Builder

チェーンを容易にするためのビルダー。

enableQuic

public CronetEngine.Builder enableQuic(boolean value)

QUIC プロトコルを有効にするかどうかを設定します。デフォルトは有効です。QUIC が有効になっている場合、アプリケーション名と Cronet バージョンを含む QUIC ユーザー エージェント ID がサーバーに送信されます。

パラメータ
boolean value

QUIC を有効にする場合は true、無効にする場合は false

戻り値
CronetEngine.Builder

チェーンを容易にするためのビルダー。

getDefaultUserAgent

public String getDefaultUserAgent()

アプリケーション名とバージョン、システム ビルド バージョン、モデルと ID、Cronet バージョンを含む User-Agent 文字列を構築します。

戻り値
String

ユーザー エージェント文字列。

setConnectionMigrationOptions

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

setConnectionMigrationOptions

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

接続移行の動作を構成します。詳しくは、ConnectionMigrationOptions のドキュメントと ConnectionMigrationOptions.Builder の個々のメソッドをご覧ください。

enableQuic が有効になっている場合にのみ関連します。

戻り値
CronetEngine.Builder

チェーンを容易にするためのビルダー。

setDnsOptions

@DnsOptions.Experimental
public CronetEngine.Builder setDnsOptions(DnsOptions dnsOptions)

ホスト名ルックアップの動作を構成します。詳しくは、DnsOptions のドキュメントと DnsOptions.Builder の個々のメソッドをご覧ください。

enableQuic が有効になっている場合にのみ関連します。

戻り値
CronetEngine.Builder

チェーンを容易にするためのビルダー。

setLibraryLoader

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

ネイティブ ライブラリの読み込みに使用する LibraryLoader を設定します。設定されていない場合、ライブラリは loadLibrary を使用して読み込まれます。

パラメータ
CronetEngine.Builder.LibraryLoader loader

ネイティブ ライブラリの読み込みに使用される LibraryLoader

戻り値
CronetEngine.Builder

チェーンを容易にするためのビルダー。

setProxyOptions

public CronetEngine.Builder setProxyOptions(@NonNull ProxyOptions proxyOptions)

プロキシの動作を構成します。これは、接続の確立、UrlRequestBidirectionalStream にさまざまな形で影響します。詳細については、Proxy のドキュメントをご覧ください。

これは、ユーザー、エンタープライズ プロファイル構成、または(おそらく)ネットワーク自動構成(ウェブプロキシ自動検出プロトコルなど)によって設定されたプロキシ構成と混同しないでください。これは通常、「システム」プロキシ構成と呼ばれます。システム プロキシ構成が存在する場合、ローカル接続やインターネット接続を取得するには、その構成を尊重することが要件となることがよくあります。CronetEngine は、システム プロキシ構成を内部で処理します。

この API を介して定義されたプロキシ構成は、「アプリ」プロキシ構成と呼ばれます。アプリとシステムのプロキシ構成は別々であり、最も重要なのは、両者が異なることです。現在、アプリとシステムのプロキシ構成は相互に排他的です。ProxyOptions を指定すると、システム プロキシ構成が存在する場合、その構成がオーバーライドされます。これにより、システム プロキシ構成が存在する一部のシナリオで接続の問題が発生する可能性があります。このようなシナリオでは、ProxyOptions が最終的な null フォールバックで構成されていない限り、ユーザーはインターネットにアクセスできなくなる可能性があります。ProxyOptions のドキュメントをご覧ください。

パラメータ
@NonNull ProxyOptions proxyOptions

このビルダーで作成された CronetEngine によって確立された UrlRequest、BiridirectionalStream、接続に使用される ProxyOptions。

戻り値
CronetEngine.Builder

チェーンを容易にするためのビルダー。

例外
java.lang.UnsupportedOperationException

使用されている Cronet 実装が古すぎて ProxyOptions をサポートできない場合。

setQuicOptions

@QuicOptions.Experimental
public CronetEngine.Builder setQuicOptions(QuicOptions.Builder quicOptionsBuilder)
関連情報
setQuicOptions

setQuicOptions

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

QUIC を使用する際の Cronet の動作を構成します。詳しくは、QuicOptions のドキュメントと QuicOptions.Builder の個々のメソッドをご覧ください。

enableQuic が有効になっている場合にのみ関連します。

戻り値
CronetEngine.Builder

チェーンを容易にするためのビルダー。

setStoragePath

public CronetEngine.Builder setStoragePath(String value)

HTTP キャッシュと Cookie ストレージのディレクトリを設定します。ディレクトリが存在している必要があります。

注: 同じストレージ ディレクトリを複数の CronetEngine で同時に使用しないでください。ストレージ ディレクトリへのアクセスは、複数の CronetEngine による同時アクセスをサポートしていません。

パラメータ
String value

既存のディレクトリへのパス。

戻り値
CronetEngine.Builder

チェーンを容易にするためのビルダー。

setThreadPriority

public CronetEngine.Builder setThreadPriority(int priority)

Cronet の内部スレッドのスレッド優先度を設定します。

パラメータ
int priority

Cronet の内部スレッドのスレッド優先度。Linux の優先度レベル。-20(最も高いスケジューリング優先度)から 19(最も低いスケジューリング優先度)まで。値の詳細については、setThreadPriority 値と THREAD_PRIORITY_* 値をご覧ください。

戻り値
CronetEngine.Builder

チェーンを容易にするためのビルダー。

setUserAgent

public CronetEngine.Builder setUserAgent(String userAgent)

すべてのリクエストの User-Agent ヘッダーをオーバーライドします。明示的に設定された User-Agent ヘッダー(addHeader を使用して設定)は、この関数を使用して設定された値をオーバーライドします。

パラメータ
String userAgent

すべてのリクエストで使用する User-Agent 文字列。

戻り値
CronetEngine.Builder

チェーンを容易にするためのビルダー。