CronetEngine.Builder

class CronetEngine.Builder


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

概要

ネストされた型

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

定数

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!

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

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

HTTP_CACHE_DISK_NO_HTTP

const val HTTP_CACHE_DISK_NO_HTTP = 2: Int

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

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 ContextBuilder がアプリケーション コンテキストを取得するために使用します。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 の存在は義務付けられていませんが、提供することを強く推奨します。

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 接続確立を利用するには、enableHttpCacheHTTP_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

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

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

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