CronetEngine

abstract class CronetEngine

Subclass langsung yang diketahui
Subclass tidak langsung yang diketahui
JavaCronetEngine

java.net.HttpURLConnection yang didukung CronetEngine.


Mesin untuk memproses UrlRequest, yang menggunakan stack HTTP terbaik yang tersedia di platform saat ini. Instance class ini dapat dibuat menggunakan Builder.

Ringkasan

Jenis bertingkat

Builder untuk CronetEngine, yang memungkinkan konfigurasi runtime CronetEngine.

Class yang menyediakan metode untuk memuat library native cronet.

Konstanta

const Int

Nilai jumlah permintaan aktif tidak diketahui

const Int

Nilai metrik koneksi tidak diketahui.

const Int

Estimasi jenis koneksi efektif adalah 2G.

const Int

Estimasi jenis koneksi efektif adalah 3G.

const Int

Estimasi jenis koneksi efektif adalah 4G.

const Int

Perangkat sedang offline.

const Int

Estimasi jenis koneksi efektif adalah 2G lambat.

const Int

Estimasi jenis koneksi efektif tidak diketahui.

const Long

Nilai yang akan digunakan untuk mengurungkan pengikatan jaringan sebelumnya.

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.

abstract 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.

abstract 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.

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

Membuat builder untuk UrlRequest.

abstract URLConnection!

Membuat koneksi baru ke resource yang ditentukan oleh URLurl.

Unit

Menghapus pemroses permintaan selesai.

Unit

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

Unit

Menghapus pemroses throughput.

abstract 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.

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

Mulai mencatat log NetLog ke file.

abstract Unit

Menghentikan logging NetLog dan menghapus file ke disk.

Konstanta

ACTIVE_REQUEST_COUNT_UNKNOWN

const val ACTIVE_REQUEST_COUNT_UNKNOWN = -1: Int

Nilai jumlah permintaan aktif tidak diketahui

CONNECTION_METRIC_UNKNOWN

const val CONNECTION_METRIC_UNKNOWN = -1: Int

Nilai metrik koneksi tidak diketahui.

EFFECTIVE_CONNECTION_TYPE_2G

const val EFFECTIVE_CONNECTION_TYPE_2G = 3: Int

Estimasi jenis koneksi efektif adalah 2G.

EFFECTIVE_CONNECTION_TYPE_3G

const val EFFECTIVE_CONNECTION_TYPE_3G = 4: Int

Estimasi jenis koneksi efektif adalah 3G.

EFFECTIVE_CONNECTION_TYPE_4G

const val EFFECTIVE_CONNECTION_TYPE_4G = 5: Int

Estimasi jenis koneksi efektif adalah 4G.

EFFECTIVE_CONNECTION_TYPE_OFFLINE

const val EFFECTIVE_CONNECTION_TYPE_OFFLINE = 1: Int

Perangkat sedang offline.

EFFECTIVE_CONNECTION_TYPE_SLOW_2G

const val EFFECTIVE_CONNECTION_TYPE_SLOW_2G = 2: Int

Estimasi jenis koneksi efektif adalah 2G lambat.

EFFECTIVE_CONNECTION_TYPE_UNKNOWN

const val EFFECTIVE_CONNECTION_TYPE_UNKNOWN = 0: Int

Estimasi jenis koneksi efektif tidak diketahui.

UNBIND_NETWORK_HANDLE

const val UNBIND_NETWORK_HANDLE = -1: Long

Nilai yang akan digunakan untuk mengurungkan pengikatan jaringan sebelumnya.

Konstruktor publik

CronetEngine

CronetEngine()

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.

createURLStreamHandlerFactory

abstract 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

abstract 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

abstract fun getVersionString(): String!
Hasil
String!

string versi mesin yang dapat dibaca manusia.

newUrlRequestBuilder

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

Membuat builder untuk UrlRequest. Semua callback untuk objek UrlRequest yang dibuat akan dipanggil di thread executor. executor tidak boleh menjalankan tugas di thread yang memanggil execute untuk mencegah pemblokiran operasi jaringan dan menyebabkan pengecualian selama penonaktifan.

Parameter
url: String!

URL untuk permintaan yang dihasilkan.

callback: UrlRequest.Callback!

objek callback yang dipanggil pada peristiwa yang berbeda.

executor: Executor!

Executor tempat semua callback akan dipanggil.

openConnection

abstract 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.

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

abstract fun shutdown(): Unit

Menonaktifkan CronetEngine jika tidak ada permintaan aktif, jika tidak, akan 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

abstract 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

abstract fun stopNetLog(): Unit

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