CronetEngine.Builder

class CronetEngine.Builder


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

概要

ネストされた型

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

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

定数

const Int

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

const Int

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

const Int

HTTP データを除外してディスク キャッシュを有効にする設定。

const Int

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

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

Builder(context: Context!)

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

パブリック関数

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

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

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

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

CronetEngine!

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

CronetEngine.Builder!

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

CronetEngine.Builder!

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

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

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

CronetEngine.Builder!

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

CronetEngine.Builder!

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

CronetEngine.Builder!

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

String!

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

CronetEngine.Builder!
CronetEngine.Builder!

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

CronetEngine.Builder!

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

CronetEngine.Builder!
CronetEngine.Builder!

この関数は非推奨になりました。

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

CronetEngine.Builder!

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

CronetEngine.Builder!
CronetEngine.Builder!

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

CronetEngine.Builder!

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

CronetEngine.Builder!

この関数は非推奨になりました。

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

CronetEngine.Builder!
setUserAgent(userAgent: String!)

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

保護されたプロパティ

JSONObject!

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

定数

HTTP_CACHE_DISABLED

const val HTTP_CACHE_DISABLED = 0: Int

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

HTTP_CACHE_DISK

const val HTTP_CACHE_DISK = 3: Int

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

HTTP_CACHE_DISK_NO_HTTP

const val HTTP_CACHE_DISK_NO_HTTP = 2: Int

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

HTTP_CACHE_IN_MEMORY

const val HTTP_CACHE_IN_MEMORY = 1: Int

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

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

Builder

Builder(context: Context!)

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

パラメータ
context: Context!

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

パブリック関数

addPublicKeyPins

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

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

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

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

パラメータ
hostName: String!

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

pinsSha256: (Mutable)Set<ByteArray!>!

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

includeSubdomains: Boolean

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

expirationDate: Date!

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

戻り値
CronetEngine.Builder!

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

例外
java.lang.NullPointerException

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

java.lang.IllegalArgumentException

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

addQuicHint

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

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

パラメータ
host: String!

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

port: Int

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

alternatePort: Int

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

戻り値
CronetEngine.Builder!

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

build

fun build(): CronetEngine!

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

戻り値
CronetEngine!

CronetEngine を構築しました。

enableBrotli

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

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

パラメータ
value: Boolean

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

戻り値
CronetEngine.Builder!

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

enableHttp2

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

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

パラメータ
value: Boolean

true で HTTP/2 を有効にし、false で無効にします。

戻り値
CronetEngine.Builder!

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

enableHttpCache

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

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

パラメータ
cacheMode: Int

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

maxSize: Long

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

戻り値
CronetEngine.Builder!

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

enableNetworkQualityEstimator

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

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

パラメータ
value: Boolean

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

戻り値
CronetEngine.Builder!

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

enablePublicKeyPinningBypassForLocalTrustAnchors

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

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

パラメータ
value: Boolean

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

戻り値
CronetEngine.Builder!

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

enableQuic

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

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

パラメータ
value: Boolean

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

戻り値
CronetEngine.Builder!

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

getDefaultUserAgent

fun getDefaultUserAgent(): String!

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

戻り値
String!

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

setConnectionMigrationOptions

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

setConnectionMigrationOptions

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

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

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

戻り値
CronetEngine.Builder!

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

setDnsOptions

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

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

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

戻り値
CronetEngine.Builder!

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

setLibraryLoader

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

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

パラメータ
loader: CronetEngine.Builder.LibraryLoader!

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

戻り値
CronetEngine.Builder!

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

setProxyOptions

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

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

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

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

パラメータ
proxyOptions: ProxyOptions

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

戻り値
CronetEngine.Builder!

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

例外
java.lang.UnsupportedOperationException

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

setQuicOptions

@QuicOptions.Experimental
fun setQuicOptions(quicOptionsBuilder: QuicOptions.Builder!): CronetEngine.Builder!
関連情報
setQuicOptions

setQuicOptions

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

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

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

戻り値
CronetEngine.Builder!

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

setStoragePath

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

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

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

パラメータ
value: String!

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

戻り値
CronetEngine.Builder!

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

setThreadPriority

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

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

パラメータ
priority: Int

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

戻り値
CronetEngine.Builder!

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

setUserAgent

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

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

パラメータ
userAgent: String!

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

戻り値
CronetEngine.Builder!

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

保護されたプロパティ

mParsedExperimentalOptions

protected val mParsedExperimentalOptions: JSONObject!

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