CronetEngine

abstract class CronetEngine

既知の直接サブクラス
既知の間接的なサブクラス
JavaCronetEngine

java.net.HttpURLConnection をバックアップした CronetEngine。


現在のプラットフォームで利用可能な最適な HTTP スタックを使用する UrlRequest を処理するエンジン。このクラスのインスタンスは、Builder を使用して作成できます。

概要

ネストされた型

CronetEngine のビルダー。 CronetEngine のランタイム構成を可能にします。

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

定数

const Int

アクティブなリクエスト数の値が不明

const Int

接続指標の値が不明です。

const Int

有効な接続タイプの推定値は 2G です。

const Int

有効な接続タイプの推定値は 3G です。

const Int

効果的な接続タイプの推定値は 4G です。

const Int

デバイスがオフラインです。

const Int

効果的な接続タイプの推定値は 2G 低速です。

const Int

有効な接続タイプの推定値が不明です。

const Long

以前のネットワーク バインディングを元に戻すために使用する値。

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

パブリック関数

Unit

各リクエストの終了後にリクエスト情報とともに呼び出されるリスナーを登録します。

Unit

ネットワーク品質推定ツールがサンプル ラウンドトリップ時間を検出するたびに呼び出されるリスナーを登録します。

Unit

ネットワーク品質推定ツールがスループット測定のサンプルを検出するたびに呼び出されるリスナーを登録します。

Unit
bindToNetwork(networkHandle: Long)

エンジンを指定されたネットワーク ハンドルにバインドします。

Unit
configureNetworkQualityEstimatorForTesting(
    useLocalHostRequests: Boolean,
    useSmallerResponses: Boolean,
    disableOfflineCheck: Boolean
)

テスト用にネットワーク品質推定ツールを構成します。

abstract URLStreamHandlerFactory!

HTTP トラフィックと HTTPS トラフィックを処理する URLStreamHandlerFactory を作成します。

Int

アクティブなリクエストの数を返します。

Int

ネットワーク品質推定ツールによって計算されたダウンストリーム スループットの推定値(kbps 単位)を返します。

Int

ネットワーク品質推定ツールによって計算された有効な接続タイプの推定値を返します。

abstract ByteArray<Byte>!

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

Cronet の最新バージョンでは、常に空の配列が返されます。

Int

ネットワーク品質推定ツールによって計算された HTTP RTT の推定値(ミリ秒単位)を返します。

Int

ネットワーク品質推定ツールによって計算された転送 RTT の推定値(ミリ秒単位)を返します。

abstract String!
abstract UrlRequest.Builder!
newUrlRequestBuilder(
    url: String!,
    callback: UrlRequest.Callback!,
    executor: Executor!
)

UrlRequest のビルダーを作成します。

abstract URLConnection!

URLurl で指定されたリソースへの新しい接続を確立します。

Unit

完了したリクエスト リスナーを削除します。

Unit

addRttListener で以前に登録された往復時間のリスナーを削除します。

Unit

スループットのリスナーを削除します。

abstract Unit

アクティブなリクエストがない場合は CronetEngine をシャットダウンし、それ以外の場合は例外をスローします。

Unit
startNetLogToDisk(dirPath: String!, logAll: Boolean, maxSize: Int)

指定されたディレクトリに、サイズ制限付きで NetLog ロギングを開始します。

abstract Unit
startNetLogToFile(fileName: String!, logAll: Boolean)

NetLog のファイルへのロギングを開始します。

abstract Unit

NetLog のロギングを停止し、ファイルをディスクにフラッシュします。

定数

ACTIVE_REQUEST_COUNT_UNKNOWN

const val ACTIVE_REQUEST_COUNT_UNKNOWN = -1: Int

アクティブなリクエスト数の値が不明

CONNECTION_METRIC_UNKNOWN

const val CONNECTION_METRIC_UNKNOWN = -1: Int

接続指標の値が不明です。

EFFECTIVE_CONNECTION_TYPE_2G

const val EFFECTIVE_CONNECTION_TYPE_2G = 3: Int

有効な接続タイプの推定値は 2G です。

EFFECTIVE_CONNECTION_TYPE_3G

const val EFFECTIVE_CONNECTION_TYPE_3G = 4: Int

有効な接続タイプの推定値は 3G です。

EFFECTIVE_CONNECTION_TYPE_4G

const val EFFECTIVE_CONNECTION_TYPE_4G = 5: Int

効果的な接続タイプの推定値は 4G です。

EFFECTIVE_CONNECTION_TYPE_OFFLINE

const val EFFECTIVE_CONNECTION_TYPE_OFFLINE = 1: Int

デバイスがオフラインです。

EFFECTIVE_CONNECTION_TYPE_SLOW_2G

const val EFFECTIVE_CONNECTION_TYPE_SLOW_2G = 2: Int

効果的な接続タイプの推定値は 2G 低速です。

EFFECTIVE_CONNECTION_TYPE_UNKNOWN

const val EFFECTIVE_CONNECTION_TYPE_UNKNOWN = 0: Int

有効な接続タイプの推定値が不明です。

UNBIND_NETWORK_HANDLE

const val UNBIND_NETWORK_HANDLE = -1: Long

以前のネットワーク バインディングを元に戻すために使用する値。

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

CronetEngine

CronetEngine()

パブリック関数

addRequestFinishedListener

fun addRequestFinishedListener(listener: RequestFinishedInfo.Listener!): Unit

各リクエストの終了後にリクエスト情報とともに呼び出されるリスナーを登録します。

リスナーは、リスナーが提供する java.util.concurrent.Executor で呼び出されます。

パラメータ
listener: RequestFinishedInfo.Listener!

完了したリクエストのリスナー。

addRttListener

fun addRttListener(listener: NetworkQualityRttListener!): Unit

ネットワーク品質推定ツールがサンプル ラウンドトリップ時間を検出するたびに呼び出されるリスナーを登録します。これは enableNetworkQualityEstimator の後に呼び出す必要があり、それ以外の場合は例外をスローします。ラウンドトリップ時間は、TCP、QUIC、URL リクエスト レイヤなど、ネットワーク スタックのさまざまなレイヤで記録されることがあります。リスナーは、enableNetworkQualityEstimator に渡された java.util.concurrent.Executor で呼び出されます。

パラメータ
listener: NetworkQualityRttListener!

ラウンドトリップ時間のリスナー。

addThroughputListener

fun addThroughputListener(listener: NetworkQualityThroughputListener!): Unit

ネットワーク品質推定ツールがスループットの測定値を検出するたびに呼び出されるリスナーを登録します。これは enableNetworkQualityEstimator の後に呼び出す必要があります。スループットの測定値は、少なくとも 1 つの URL レスポンスが受信されているときに、アクティブなネットワーク インターフェースで読み取られたバイト数を測定することで計算されます。リスナーは、enableNetworkQualityEstimator に渡された java.util.concurrent.Executor で呼び出されます。

パラメータ
listener: NetworkQualityThroughputListener!

スループットのリスナー。

bindToNetwork

fun bindToNetwork(networkHandle: Long): Unit

エンジンを指定されたネットワーク ハンドルにバインドします。このエンジンで作成されたすべてのリクエストは、このハンドルに関連付けられたネットワークを使用します。このネットワークが切断されると、すべてのリクエストが失敗します。エラーの内容は、ネットワークが切断されたときのリクエスト処理の段階によって異なります。ネットワーク ハンドルは Network#getNetworkHandle を介して取得できます。Android Marshmallow 以降でのみ利用可能です。

パラメータ
networkHandle: Long

エンジンをバインドするネットワーク ハンドル。バインドを解除するには、UNBIND_NETWORK_HANDLE を指定します。

configureNetworkQualityEstimatorForTesting

fun configureNetworkQualityEstimatorForTesting(
    useLocalHostRequests: Boolean,
    useSmallerResponses: Boolean,
    disableOfflineCheck: Boolean
): Unit

テスト用にネットワーク品質推定ツールを構成します。これは、往復時間とスループットのリスナーが追加される前、かつネットワーク品質推定ツールが有効になった後に呼び出す必要があります。

パラメータ
useLocalHostRequests: Boolean

localhost へのリクエストを見積もりに含める。

useSmallerResponses: Boolean

スループットの見積もりに小さなレスポンスを含めます。

disableOfflineCheck: Boolean

true に設定すると、有効な接続タイプを計算するときや設定を書き込むときに、デバイスのオフライン チェックが無効になります。

createURLStreamHandlerFactory

abstract fun createURLStreamHandlerFactory(): URLStreamHandlerFactory!

HTTP トラフィックと HTTPS トラフィックを処理する URLStreamHandlerFactory を作成します。このクラスのインスタンスは setURLStreamHandlerFactory を介してインストールできます。これにより、openConnection を介して作成されたすべてのリクエストで、この CronetEngine がデフォルトで使用されます。

Cronet は、システムから提供される特定の HTTP 機能を使用しません。

  • HttpResponseCache.install() を介してインストールされた HTTP キャッシュ
  • setDefault を介してインストールされた HTTP 認証方法
  • setDefault を介してインストールされた HTTP Cookie ストレージ

Cronet は HTTPS プロトコルを使用したリクエストをサポートし、推奨していますが、HttpsURLConnection API はサポートしていません。このサポートの欠如には、システムを介して提供される特定の HTTPS 機能を使用しないことも含まれます。

戻り値
URLStreamHandlerFactory!

この CronetEngine によって実装された URLStreamHandlerFactory インスタンス。

getActiveRequestCount

fun getActiveRequestCount(): Int

アクティブなリクエストの数を返します。

UrlRequest.start() でリクエストが「アクティブ」になります(このメソッドが例外をスローしない場合)。すべてのコールバックが返され、今後追加のコールバックをトリガーできなくなると、非アクティブになります。実際には、これは onSucceeded/onCanceled/onFailed が返され、すべてのリクエスト完了リスナーが返されると、リクエストが非アクティブになることを意味します。詳細については、Cronet リクエストのライフサイクルをご覧ください。

getDownstreamThroughputKbps

fun getDownstreamThroughputKbps(): Int

ネットワーク品質推定ツールによって計算されたダウンストリーム スループットの推定値(kbps 単位)を返します。値が使用できない場合は CONNECTION_METRIC_UNKNOWN に設定します。これは enableNetworkQualityEstimator の後に呼び出す必要があり、そうでない場合は例外がスローされます。

戻り値
Int

ダウンストリーム スループットの推定値(kb/秒)。

getEffectiveConnectionType

fun getEffectiveConnectionType(): Int

ネットワーク品質推定ツールによって計算された有効な接続タイプの推定値を返します。この値の計算を開始するには、enableNetworkQualityEstimator を呼び出します。

戻り値
Int

推定接続タイプ。返される値は EFFECTIVE_CONNECTION_TYPE_* のいずれかです。

getGlobalMetricsDeltas

abstract fun getGlobalMetricsDeltas(): ByteArray<Byte>!

getHttpRttMs

fun getHttpRttMs(): Int

ネットワーク品質推定ツールによって計算された HTTP RTT の推定値(ミリ秒単位)を返します。値が使用できない場合は CONNECTION_METRIC_UNKNOWN に設定します。これは enableNetworkQualityEstimator の後に呼び出す必要があり、そうでない場合は例外がスローされます。

戻り値
Int

HTTP RTT の推定値(ミリ秒単位)。

getTransportRttMs

fun getTransportRttMs(): Int

ネットワーク品質推定ツールによって計算された転送 RTT の推定値(ミリ秒単位)を返します。値が使用できない場合は CONNECTION_METRIC_UNKNOWN に設定します。これは enableNetworkQualityEstimator の後に呼び出す必要があり、そうでない場合は例外がスローされます。

戻り値
Int

トランスポート RTT の推定値(ミリ秒単位)。

getVersionString

abstract fun getVersionString(): String!
戻り値
String!

エンジンを人が読める形式のバージョン文字列。

newUrlRequestBuilder

abstract fun newUrlRequestBuilder(
    url: String!,
    callback: UrlRequest.Callback!,
    executor: Executor!
): UrlRequest.Builder!

UrlRequest のビルダーを作成します。生成された UrlRequest オブジェクトのすべてのコールバックは、executor のスレッドで呼び出されます。executor は、execute を呼び出すスレッドでタスクを実行してはなりません。これにより、ネットワーク オペレーションのブロックやシャットダウン中の例外の発生を防ぎます。

パラメータ
url: String!

生成されたリクエストの URL。

callback: UrlRequest.Callback!

さまざまなイベントで呼び出されるコールバック オブジェクト。

executor: Executor!

Executor。すべてのコールバックが呼び出されます。

openConnection

abstract fun openConnection(url: URL!): URLConnection!

URLurl で指定されたリソースへの新しい接続を確立します。

注: Cronet の java.net.HttpURLConnection 実装にはいくつかの制限があります。詳しくは、createURLStreamHandlerFactory をご覧ください。

パラメータ
url: URL!

接続するリソースの URL。

戻り値
URLConnection!

この CronetEngine によって実装された java.net.HttpURLConnection インスタンス。

例外
java.io.IOException

接続を開くときにエラーが発生した場合。

removeRequestFinishedListener

fun removeRequestFinishedListener(listener: RequestFinishedInfo.Listener!): Unit

完了したリクエスト リスナーを削除します。

パラメータ
listener: RequestFinishedInfo.Listener!

削除するリスナー。

removeRttListener

fun removeRttListener(listener: NetworkQualityRttListener!): Unit

addRttListener で以前に登録された往復時間のリスナーを削除します。これは、モニタリングの受信を停止するために、NetworkQualityRttListener が追加された後に呼び出す必要があります。

パラメータ
listener: NetworkQualityRttListener!

ラウンドトリップ時間のリスナー。

removeThroughputListener

fun removeThroughputListener(listener: NetworkQualityThroughputListener!): Unit

スループットのリスナーを削除します。これは、モニタリングの受信を停止するために、addThroughputListenerNetworkQualityThroughputListener が追加された後に呼び出す必要があります。

パラメータ
listener: NetworkQualityThroughputListener!

スループットのリスナー。

shutdown

abstract fun shutdown(): Unit

アクティブなリクエストがない場合は CronetEngine をシャットダウンし、それ以外の場合は例外をスローします。

ネットワーク スレッドで呼び出すことはできません。Cronet が Executor を呼び出すスレッド(Executor がコールバックを呼び出すスレッドとは異なります)です。すべての CronetEngine リソースがクリーンアップされるまでブロックされることがあります。

startNetLogToDisk

fun startNetLogToDisk(dirPath: String!, logAll: Boolean, maxSize: Int): Unit

指定されたディレクトリに、サイズ制限付きで NetLog のロギングを開始します。NetLog には、すべてのライブ CronetEngine によって出力されたイベントが含まれます。NetLog はデバッグに役立ちます。ロギングが停止すると stopNetLog、データは dirPath の netlog.json に書き込まれます。ロギングが中断された場合は、https://chromium.googlesource.com/chromium/src/+/main/net/tools/stitch_net_log_files.py を使用して、.inprogress サブディレクトリにあるファイルをマニュアルでつなぎ合わせることができます。ログは、Chrome ブラウザで chrome://net-internals/#import に移動して確認できます。

パラメータ
dirPath: String!

netlog.json ファイルが作成されるディレクトリ。dirPath はすでに存在している必要があります。NetLog ファイルがディレクトリに存在してはなりません。アクティブにロギングしている場合、このメソッドは無視されます。

logAll: Boolean

true: 基本イベント、ユーザー Cookie、認証情報、転送されたすべてのバイト数をログに含めます。このオプションはユーザーの認証情報を公開するため、プライバシー リスクがあります。ユーザーの同意を得て、ログが公開されない状況でのみ使用してください。false を使用して、基本的なイベントのみを含めます。

maxSize: Int

NetLog で使用されるディスク容量の合計の最大値(バイト単位)。実際のディスク容量の使用量がこの上限をわずかに超えることがあります。

startNetLogToFile

abstract fun startNetLogToFile(fileName: String!, logAll: Boolean): Unit

NetLog のファイルへのロギングを開始します。NetLog には、すべてのライブ CronetEngine によって出力されたイベントが含まれます。NetLog はデバッグに役立ちます。このファイルは、Chrome ブラウザで chrome://net-internals/#import に移動して表示できます。

パラメータ
fileName: String!

完全なファイルパス。空にすることはできません。ファイルが存在する場合は、開始前に切り捨てられます。アクティブにロギングしている場合、このメソッドは無視されます。

logAll: Boolean

true: 基本イベント、ユーザー Cookie、認証情報、転送されたすべてのバイト数をログに含めます。このオプションはユーザーの認証情報を公開するため、プライバシー リスクがあります。ユーザーの同意を得て、ログが公開されない状況でのみ使用してください。false を使用して、基本的なイベントのみを含めます。

stopNetLog

abstract fun stopNetLog(): Unit

NetLog ロギングを停止し、ファイルをディスクにフラッシュします。ロギング セッションが進行中でない場合、この呼び出しは無視されます。