CronetEngine.Builder

public class CronetEngine.Builder


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

概要

ネストされた型

このクラスは非推奨になりました。

System.loadLibrary は minSDK <= 23 では信頼性が低く、このメソッドは代替のより信頼性の高いローダーを提供するために使用されていました。

定数

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

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

System.loadLibrary は minSDK <= 23 では信頼性が低く、このメソッドは代替のより信頼性の高いローダーを提供するために使用されていました。

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 データを含むディスク上のキャッシュを有効にする設定。この定数を enableHttpCache に渡す前に setStoragePath を呼び出す必要があります。

HTTP_CACHE_DISK_NO_HTTP

public static final int HTTP_CACHE_DISK_NO_HTTP = 2

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

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 Context。Builder がアプリケーション コンテキストを取得するために使用します。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 の存在は義務付けられていませんが、バックアップ 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 接続確立を利用するには、enableHttpCache(HTTP_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

true で HTTP/2 を有効にし、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 とスループットのリスナーを addRttListener と addThroughputListener で追加し、removeRttListener と removeThroughputListener で削除できるようになります。エスティメータは、有効になっている場合にのみメモリと 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)

プロキシの動作を構成します。これは、接続の確立、UrlRequest、BidirectionalStream にさまざまな形で影響します。詳細については、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

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