JavaCronetEngine

class JavaCronetEngine : CronetEngineBase


java.net.HttpURLConnection yang didukung CronetEngine.

Tidak mendukung netlog, pengukuran data yang ditransfer, bidistream, cache, atau prioritas.

Ringkasan

Konstruktor publik

Fungsi publik

Unit

Mendaftarkan pemroses yang dipanggil setelah akhir setiap permintaan dengan info permintaan.

Unit

Mendaftarkan pemroses yang dipanggil setiap kali estimator kualitas jaringan mengamati waktu perjalanan pulang pergi sampel.

Unit

Mendaftarkan pemroses yang dipanggil setiap kali estimator kualitas jaringan menyaksikan pengukuran throughput sampel.

Unit
bindToNetwork(networkHandle: Long)

Mengikat mesin ke handle jaringan yang ditentukan.

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

Mengonfigurasi estimator kualitas jaringan untuk pengujian.

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!

Membuat URLStreamHandlerFactory untuk menangani traffic HTTP dan HTTPS.

Int

Menampilkan jumlah permintaan aktif.

Int

Menampilkan estimasi throughput downstream (dalam kilobit per detik) yang dihitung oleh estimator kualitas jaringan.

Int

Menampilkan perkiraan jenis koneksi efektif yang dihitung oleh estimator kualitas jaringan.

ByteArray<Byte>!

Fungsi ini tidak digunakan lagi.

Dalam Cronet versi modern, ini akan selalu menampilkan array kosong.

Int

Menampilkan estimasi RTT HTTP (dalam milidetik) yang dihitung oleh estimator kualitas jaringan.

Int

Menampilkan estimasi RTT transportasi (dalam milidetik) yang dihitung oleh estimator kualitas jaringan.

String!
URLConnection!

Membuat koneksi baru ke resource yang ditentukan oleh URLurl.

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

Membuat koneksi baru ke resource yang ditentukan oleh URLurl menggunakan proxy yang diberikan.

Unit

Menghapus pemroses permintaan selesai.

Unit

Menghapus pemroses waktu perjalanan pulang pergi jika sebelumnya terdaftar dengan addRttListener.

Unit

Menghapus pemroses throughput.

Unit

Menonaktifkan CronetEngine jika tidak ada permintaan aktif, jika tidak, akan menampilkan pengecualian.

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

Memulai logging NetLog ke direktori tertentu dengan ukuran terbatas.

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

Mulai mencatat log NetLog ke file.

Unit

Menghentikan logging NetLog dan menghapus file ke disk.

Fungsi yang dilindungi

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
)

Konstanta Turunan

Dari org.chromium.net.CronetEngine
const Int

Nilai jumlah permintaan aktif tidak diketahui

Dari org.chromium.net.impl.CronetEngineBase

Fungsi yang diwariskan

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

Membuat builder untuk UrlRequest.

Konstruktor publik

JavaCronetEngine

JavaCronetEngine(builder: CronetEngineBuilderImpl!)

Fungsi publik

addRequestFinishedListener

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

Mendaftarkan pemroses yang dipanggil setelah akhir setiap permintaan dengan info permintaan.

Pemroses dipanggil pada java.util.concurrent.Executor yang disediakan oleh pemroses.

Parameter
listener: RequestFinishedInfo.Listener!

pemroses untuk permintaan yang selesai.

addRttListener

fun addRttListener(listener: NetworkQualityRttListener!): Unit

Mendaftarkan pemroses yang dipanggil setiap kali estimator kualitas jaringan mengamati waktu perjalanan pulang pergi sampel. Metode ini harus dipanggil setelah enableNetworkQualityEstimator, dan akan memunculkan pengecualian jika tidak. Waktu perjalanan pulang pergi dapat direkam di berbagai lapisan stack jaringan, termasuk TCP, QUIC, dan di lapisan permintaan URL. Pemroses dipanggil di java.util.concurrent.Executor yang diteruskan ke enableNetworkQualityEstimator.

Parameter
listener: NetworkQualityRttListener!

pendengar waktu round-trip.

addThroughputListener

fun addThroughputListener(listener: NetworkQualityThroughputListener!): Unit

Mendaftarkan pemroses yang dipanggil setiap kali estimator kualitas jaringan menyaksikan pengukuran throughput sampel. Tindakan ini harus dipanggil setelah enableNetworkQualityEstimator. Pengamatan throughput dihitung dengan mengukur byte yang dibaca melalui antarmuka jaringan aktif pada saat setidaknya satu respons URL diterima. Pemroses dipanggil di java.util.concurrent.Executor yang diteruskan ke enableNetworkQualityEstimator.

Parameter
listener: NetworkQualityThroughputListener!

pendengar throughput.

bindToNetwork

fun bindToNetwork(networkHandle: Long): Unit

Mengikat mesin ke handle jaringan yang ditentukan. Semua permintaan yang dibuat melalui mesin ini akan menggunakan jaringan yang terkait dengan handle ini. Jika jaringan ini terputus, semua permintaan akan gagal. Error yang tepat akan bergantung pada tahap pemrosesan permintaan saat jaringan terputus. Nama sebutan jaringan dapat diperoleh melalui Network#getNetworkHandle. Hanya tersedia mulai Android Marshmallow.

Parameter
networkHandle: Long

handle jaringan untuk mengikat mesin. Tentukan UNBIND_NETWORK_HANDLE untuk membatalkan pengikatan.

configureNetworkQualityEstimatorForTesting

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

Mengonfigurasi estimator kualitas jaringan untuk pengujian. Metode ini harus dipanggil sebelum pemroses waktu perjalanan pulang pergi dan throughput ditambahkan, dan setelah estimator kualitas jaringan diaktifkan.

Parameter
useLocalHostRequests: Boolean

menyertakan permintaan ke localhost dalam estimasi.

useSmallerResponses: Boolean

sertakan respons kecil dalam perkiraan throughput.

disableOfflineCheck: Boolean

Jika disetel ke benar (true), akan menonaktifkan pemeriksaan offline perangkat saat menghitung jenis koneksi yang efektif atau saat menulis preferensi.

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!

Membuat URLStreamHandlerFactory untuk menangani traffic HTTP dan HTTPS. Instance class ini dapat diinstal melalui setURLStreamHandlerFactory sehingga menggunakan CronetEngine ini secara default untuk semua permintaan yang dibuat melalui openConnection.

Cronet tidak menggunakan fitur HTTP tertentu yang disediakan melalui sistem:

Meskipun mendukung dan mendorong permintaan menggunakan protokol HTTPS, Cronet tidak memberikan dukungan untuk HttpsURLConnection API. Kurangnya dukungan ini juga mencakup tidak menggunakan fitur HTTPS tertentu yang disediakan melalui sistem:

Hasil
URLStreamHandlerFactory!

instance URLStreamHandlerFactory yang diterapkan oleh CronetEngine ini.

getActiveRequestCount

fun getActiveRequestCount(): Int

Menampilkan jumlah permintaan aktif.

Permintaan menjadi "aktif" di UrlRequest.start(), dengan asumsi metode tersebut tidak memunculkan pengecualian. Objek ini menjadi tidak aktif saat semua callback telah ditampilkan dan tidak ada callback tambahan yang dapat dipicu pada masa mendatang. Dalam praktiknya, artinya permintaan tidak aktif setelah onSucceeded/onCanceled/onFailed ditampilkan dan semua pendengar selesai permintaan telah ditampilkan. Siklus proses permintaan Cronet untuk mengetahui informasi selengkapnya.

getDownstreamThroughputKbps

fun getDownstreamThroughputKbps(): Int

Menampilkan estimasi throughput downstream (dalam kilobit per detik) yang dihitung oleh estimator kualitas jaringan. Disetel ke CONNECTION_METRIC_UNKNOWN jika nilai tidak tersedia. Tindakan ini harus dipanggil setelah enableNetworkQualityEstimator, dan akan memunculkan pengecualian jika tidak.

Hasil
Int

Estimasi throughput downstream dalam kilobit per detik.

getEffectiveConnectionType

fun getEffectiveConnectionType(): Int

Menampilkan perkiraan jenis koneksi efektif yang dihitung oleh estimator kualitas jaringan. Panggil enableNetworkQualityEstimator untuk mulai menghitung nilai ini.

Hasil
Int

perkiraan jenis koneksi. Nilai yang ditampilkan adalah salah satu dari EFFECTIVE_CONNECTION_TYPE_* .

getGlobalMetricsDeltas

fun getGlobalMetricsDeltas(): ByteArray<Byte>!

getHttpRttMs

fun getHttpRttMs(): Int

Menampilkan estimasi RTT HTTP (dalam milidetik) yang dihitung oleh estimator kualitas jaringan. Disetel ke CONNECTION_METRIC_UNKNOWN jika nilai tidak tersedia. Tindakan ini harus dipanggil setelah enableNetworkQualityEstimator, dan akan memunculkan pengecualian jika tidak.

Hasil
Int

Perkiraan RTT HTTP dalam milidetik.

getTransportRttMs

fun getTransportRttMs(): Int

Menampilkan estimasi RTT transportasi (dalam milidetik) yang dihitung oleh estimator kualitas jaringan. Disetel ke CONNECTION_METRIC_UNKNOWN jika nilai tidak tersedia. Tindakan ini harus dipanggil setelah enableNetworkQualityEstimator, dan akan memunculkan pengecualian jika tidak.

Hasil
Int

Estimasi RTT transportasi dalam milidetik.

getVersionString

fun getVersionString(): String!
Hasil
String!

string versi mesin yang dapat dibaca manusia.

openConnection

fun openConnection(url: URL!): URLConnection!

Membuat koneksi baru ke resource yang ditentukan oleh URLurl.

Catatan: Implementasi java.net.HttpURLConnection Cronet tunduk pada batasan tertentu, lihat createURLStreamHandlerFactory untuk mengetahui detailnya.

Parameter
url: URL!

URL resource yang akan dihubungkan.

Hasil
URLConnection!

instance java.net.HttpURLConnection yang diterapkan oleh CronetEngine ini.

Menampilkan
java.io.IOException

jika terjadi error saat membuka koneksi.

openConnection

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

Membuat koneksi baru ke resource yang ditentukan oleh URLurl menggunakan proxy yang diberikan.

Catatan: Implementasi java.net.HttpURLConnection Cronet tunduk pada batasan tertentu, lihat createURLStreamHandlerFactory untuk mengetahui detailnya.

Parameter
url: URL!

URL resource yang akan dihubungkan.

proxy: Proxy!

proxy yang akan digunakan saat membuat koneksi.

Hasil
URLConnection!

instance java.net.HttpURLConnection yang diterapkan oleh CronetEngine ini.

Menampilkan
java.io.IOException

jika terjadi error saat membuka koneksi.

removeRequestFinishedListener

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

Menghapus pemroses permintaan selesai.

Parameter
listener: RequestFinishedInfo.Listener!

pemroses yang akan dihapus.

removeRttListener

fun removeRttListener(listener: NetworkQualityRttListener!): Unit

Menghapus pemroses waktu perjalanan pulang pergi jika sebelumnya terdaftar dengan addRttListener. Metode ini harus dipanggil setelah NetworkQualityRttListener ditambahkan untuk berhenti menerima pengamatan.

Parameter
listener: NetworkQualityRttListener!

pendengar waktu round-trip.

removeThroughputListener

fun removeThroughputListener(listener: NetworkQualityThroughputListener!): Unit

Menghapus pemroses throughput. Fungsi ini harus dipanggil setelah NetworkQualityThroughputListener ditambahkan dengan addThroughputListener untuk berhenti menerima pengamatan.

Parameter
listener: NetworkQualityThroughputListener!

pendengar throughput.

shutdown

fun shutdown(): Unit

Menonaktifkan CronetEngine jika tidak ada permintaan aktif, atau menampilkan pengecualian.

Tidak dapat dipanggil di thread jaringan - thread yang dipanggil Cronet ke Executor (yang berbeda dengan thread yang dipanggil Executor untuk callback). Dapat memblokir hingga semua resource CronetEngine dibersihkan.

startNetLogToDisk

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

Memulai logging NetLog ke direktori tertentu dengan ukuran terbatas. NetLog akan berisi peristiwa yang dikeluarkan oleh semua CronetEngine aktif. NetLog berguna untuk proses debug. Setelah logging dihentikan stopNetLog, data akan ditulis ke netlog.json di dirPath. Jika pencatatan log terganggu, Anda dapat menggabungkan file yang ditemukan di subdirektori .inprogress secara manual menggunakan: https://chromium.googlesource.com/chromium/src/+/main/net/tools/stitch_net_log_files.py. Log dapat dilihat menggunakan browser Chrome yang membuka chrome://net-internals/#import.

Parameter
dirPath: String!

direktori tempat file netlog.json akan dibuat. dirPath harus sudah ada. File NetLog tidak boleh ada di direktori. Jika logging aktif, metode ini akan diabaikan.

logAll: Boolean

true untuk menyertakan peristiwa dasar, cookie pengguna, kredensial, dan semua byte yang ditransfer dalam log. Opsi ini menimbulkan risiko privasi, karena mengekspos kredensial pengguna, dan hanya boleh digunakan dengan izin pengguna dan dalam situasi saat log tidak akan bersifat publik. false untuk hanya menyertakan peristiwa dasar.

maxSize: Int

ruang disk total maksimum dalam byte yang harus digunakan oleh NetLog. Penggunaan ruang disk sebenarnya mungkin sedikit melebihi batas ini.

startNetLogToFile

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

Mulai mencatat log NetLog ke file. NetLog akan berisi peristiwa yang dikeluarkan oleh semua CronetEngine aktif. NetLog berguna untuk proses debug. File dapat dilihat menggunakan browser Chrome yang membuka chrome://net-internals/#import

Parameter
fileName: String!

jalur file lengkap. Tidak boleh kosong. Jika file ada, file tersebut akan dipangkas sebelum dimulai. Jika logging aktif, metode ini akan diabaikan.

logAll: Boolean

true untuk menyertakan peristiwa dasar, cookie pengguna, kredensial, dan semua byte yang ditransfer dalam log. Opsi ini menimbulkan risiko privasi, karena mengekspos kredensial pengguna, dan hanya boleh digunakan dengan izin pengguna dan dalam situasi saat log tidak akan bersifat publik. false untuk hanya menyertakan peristiwa dasar.

stopNetLog

fun stopNetLog(): Unit

Menghentikan logging NetLog dan menghapus file ke disk. Jika sesi logging tidak sedang berlangsung, panggilan ini akan diabaikan.

Fungsi yang dilindungi

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!