JavaCronetEngine

class JavaCronetEngine : CronetEngineBase


java.net.HttpURLConnection をバックエンドとする CronetEngine。

netlog、転送されたデータの測定、bidistream、キャッシュ、優先度をサポートしていません。

概要

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

パブリック関数

Unit

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

Unit

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

Unit

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

Unit
bindToNetwork(networkHandle: Long)

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

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

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

ExperimentalUrlRequest!
createRequest(
    url: String!,
    callback: UrlRequest.Callback!,
    executor: Executor!,
    priority: Int,
    connectionAnnotations: (Mutable)Collection<Any!>!,
    disableCache: Boolean,
    disableConnectionMigration: Boolean,
    allowDirectExecutor: Boolean,
    trafficStatsTagSet: Boolean,
    trafficStatsTag: Int,
    trafficStatsUidSet: Boolean,
    trafficStatsUid: Int,
    requestFinishedListener: RequestFinishedInfo.Listener!,
    idempotency: Int,
    networkHandle: Long,
    method: String!,
    requestHeaders: ArrayList<(Mutable)Map.Entry<String!, String!>!>!,
    uploadDataProvider: UploadDataProvider!,
    uploadDataProviderExecutor: Executor!,
    sharedDictionaryHash: ByteArray!,
    sharedDictionary: ByteBuffer!,
    sharedDictionaryId: String
)
URLStreamHandlerFactory!

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

Int

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

Int

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

Int

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

ByteArray<Byte>!

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

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

Int

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

Int

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

String!
URLConnection!

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

URLConnection!
openConnection(url: URL!, proxy: Proxy!)

指定されたプロキシを使用して、URLurl で指定されたリソースへの新しい接続を確立します。

Unit

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

Unit

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

Unit

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

Unit

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

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

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

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

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

Unit

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

プロテクト関数

ExperimentalBidirectionalStream!
createBidirectionalStream(
    url: String!,
    callback: BidirectionalStream.Callback!,
    executor: Executor!,
    httpMethod: String!,
    requestHeaders: (Mutable)List<(Mutable)Map.Entry<String!, String!>!>!,
    @CronetEngineBase.StreamPriority priority: Int,
    delayRequestHeadersUntilFirstFlush: Boolean,
    connectionAnnotations: (Mutable)Collection<Any!>!,
    trafficStatsTagSet: Boolean,
    trafficStatsTag: Int,
    trafficStatsUidSet: Boolean,
    trafficStatsUid: Int,
    networkHandle: Long
)

継承される定数

org.chromium.net.CronetEngine から
const Int

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

org.chromium.net.impl.CronetEngineBase から

継承される関数

org.chromium.net.impl.CronetEngineBase から
ExperimentalUrlRequest.Builder!
newUrlRequestBuilder(
    url: String!,
    callback: UrlRequest.Callback!,
    executor: Executor!
)

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

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

JavaCronetEngine

JavaCronetEngine(builder: CronetEngineBuilderImpl!)

パブリック関数

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

createRequest

fun createRequest(
    url: String!,
    callback: UrlRequest.Callback!,
    executor: Executor!,
    priority: Int,
    connectionAnnotations: (Mutable)Collection<Any!>!,
    disableCache: Boolean,
    disableConnectionMigration: Boolean,
    allowDirectExecutor: Boolean,
    trafficStatsTagSet: Boolean,
    trafficStatsTag: Int,
    trafficStatsUidSet: Boolean,
    trafficStatsUid: Int,
    requestFinishedListener: RequestFinishedInfo.Listener!,
    idempotency: Int,
    networkHandle: Long,
    method: String!,
    requestHeaders: ArrayList<(Mutable)Map.Entry<String!, String!>!>!,
    uploadDataProvider: UploadDataProvider!,
    uploadDataProviderExecutor: Executor!,
    sharedDictionaryHash: ByteArray!,
    sharedDictionary: ByteBuffer!,
    sharedDictionaryId: String
): ExperimentalUrlRequest!

createURLStreamHandlerFactory

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

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

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

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

openConnection

fun openConnection(url: URL!): URLConnection!

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

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

パラメータ
url: URL!

接続するリソースの URL。

戻り値
URLConnection!

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

例外
java.io.IOException

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

openConnection

fun openConnection(url: URL!, proxy: Proxy!): URLConnection!

指定されたプロキシを使用して、URLurl で指定されたリソースへの新しい接続を確立します。

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

パラメータ
url: URL!

接続するリソースの URL。

proxy: Proxy!

接続を確立するときに使用するプロキシ。

戻り値
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

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

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

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

パラメータ
fileName: String!

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

logAll: Boolean

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

stopNetLog

fun stopNetLog(): Unit

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

プロテクト関数

createBidirectionalStream

protected fun createBidirectionalStream(
    url: String!,
    callback: BidirectionalStream.Callback!,
    executor: Executor!,
    httpMethod: String!,
    requestHeaders: (Mutable)List<(Mutable)Map.Entry<String!, String!>!>!,
    @CronetEngineBase.StreamPriority priority: Int,
    delayRequestHeadersUntilFirstFlush: Boolean,
    connectionAnnotations: (Mutable)Collection<Any!>!,
    trafficStatsTagSet: Boolean,
    trafficStatsTag: Int,
    trafficStatsUidSet: Boolean,
    trafficStatsUid: Int,
    networkHandle: Long
): ExperimentalBidirectionalStream!