CronetEngine

public 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

static final int

Nilai jumlah permintaan aktif tidak diketahui

static final int

Nilai metrik koneksi tidak diketahui.

static final int

Estimasi jenis koneksi efektif adalah 2G.

static final int

Estimasi jenis koneksi efektif adalah 3G.

static final int

Estimasi jenis koneksi efektif adalah 4G.

static final int

Perangkat sedang offline.

static final int

Estimasi jenis koneksi efektif adalah 2G lambat.

static final int

Estimasi jenis koneksi efektif tidak diketahui.

static final long

Nilai yang akan digunakan untuk mengurungkan pengikatan jaringan sebelumnya.

Konstruktor publik

Metode publik

void

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

void

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

void

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

void
bindToNetwork(long networkHandle)

Mengikat mesin ke handle jaringan yang ditentukan.

void
configureNetworkQualityEstimatorForTesting(
    boolean useLocalHostRequests,
    boolean useSmallerResponses,
    boolean disableOfflineCheck
)

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 byte[]

Metode 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(
    String url,
    UrlRequest.Callback callback,
    Executor executor
)

Membuat builder untuk UrlRequest.

abstract URLConnection

Membuat koneksi baru ke resource yang ditentukan oleh URLurl.

void

Menghapus pemroses permintaan selesai.

void

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

void

Menghapus pemroses throughput.

abstract void

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

void
startNetLogToDisk(String dirPath, boolean logAll, int maxSize)

Memulai logging NetLog ke direktori tertentu dengan ukuran terbatas.

abstract void
startNetLogToFile(String fileName, boolean logAll)

Mulai mencatat log NetLog ke file.

abstract void

Menghentikan logging NetLog dan menghapus file ke disk.

Konstanta

ACTIVE_REQUEST_COUNT_UNKNOWN

public static final int ACTIVE_REQUEST_COUNT_UNKNOWN = -1

Nilai jumlah permintaan aktif tidak diketahui

CONNECTION_METRIC_UNKNOWN

public static final int CONNECTION_METRIC_UNKNOWN = -1

Nilai metrik koneksi tidak diketahui.

EFFECTIVE_CONNECTION_TYPE_2G

public static final int EFFECTIVE_CONNECTION_TYPE_2G = 3

Estimasi jenis koneksi efektif adalah 2G.

EFFECTIVE_CONNECTION_TYPE_3G

public static final int EFFECTIVE_CONNECTION_TYPE_3G = 4

Estimasi jenis koneksi efektif adalah 3G.

EFFECTIVE_CONNECTION_TYPE_4G

public static final int EFFECTIVE_CONNECTION_TYPE_4G = 5

Estimasi jenis koneksi efektif adalah 4G.

EFFECTIVE_CONNECTION_TYPE_OFFLINE

public static final int EFFECTIVE_CONNECTION_TYPE_OFFLINE = 1

Perangkat sedang offline.

EFFECTIVE_CONNECTION_TYPE_SLOW_2G

public static final int EFFECTIVE_CONNECTION_TYPE_SLOW_2G = 2

Estimasi jenis koneksi efektif adalah 2G lambat.

EFFECTIVE_CONNECTION_TYPE_UNKNOWN

public static final int EFFECTIVE_CONNECTION_TYPE_UNKNOWN = 0

Estimasi jenis koneksi efektif tidak diketahui.

UNBIND_NETWORK_HANDLE

public static final long UNBIND_NETWORK_HANDLE = -1

Nilai yang akan digunakan untuk mengurungkan pengikatan jaringan sebelumnya.

Konstruktor publik

CronetEngine

public CronetEngine()

Metode publik

addRequestFinishedListener

public void addRequestFinishedListener(RequestFinishedInfo.Listener listener)

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

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

Parameter
RequestFinishedInfo.Listener listener

pemroses untuk permintaan yang selesai.

addRttListener

public void addRttListener(NetworkQualityRttListener listener)

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
NetworkQualityRttListener listener

pendengar waktu round-trip.

addThroughputListener

public void addThroughputListener(NetworkQualityThroughputListener listener)

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
NetworkQualityThroughputListener listener

pendengar throughput.

bindToNetwork

public void bindToNetwork(long networkHandle)

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
long networkHandle

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

configureNetworkQualityEstimatorForTesting

public void configureNetworkQualityEstimatorForTesting(
    boolean useLocalHostRequests,
    boolean useSmallerResponses,
    boolean disableOfflineCheck
)

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
boolean useLocalHostRequests

menyertakan permintaan ke localhost dalam estimasi.

boolean useSmallerResponses

sertakan respons kecil dalam perkiraan throughput.

boolean disableOfflineCheck

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

createURLStreamHandlerFactory

public abstract URLStreamHandlerFactory createURLStreamHandlerFactory()

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

public int getActiveRequestCount()

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

public int getDownstreamThroughputKbps()

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

public int getEffectiveConnectionType()

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

public abstract byte[] getGlobalMetricsDeltas()

getHttpRttMs

public int getHttpRttMs()

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

public int getTransportRttMs()

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

public abstract String getVersionString()
Hasil
String

string versi mesin yang dapat dibaca manusia.

newUrlRequestBuilder

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

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
String url

URL untuk permintaan yang dihasilkan.

UrlRequest.Callback callback

objek callback yang dipanggil pada peristiwa yang berbeda.

Executor executor

Executor tempat semua callback akan dipanggil.

openConnection

public abstract URLConnection openConnection(URL url)

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

public void removeRequestFinishedListener(RequestFinishedInfo.Listener listener)

Menghapus pemroses permintaan selesai.

Parameter
RequestFinishedInfo.Listener listener

pemroses yang akan dihapus.

removeRttListener

public void removeRttListener(NetworkQualityRttListener listener)

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

Parameter
NetworkQualityRttListener listener

pendengar waktu round-trip.

removeThroughputListener

public void removeThroughputListener(NetworkQualityThroughputListener listener)

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

Parameter
NetworkQualityThroughputListener listener

pendengar throughput.

shutdown

public abstract void shutdown()

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

public void startNetLogToDisk(String dirPath, boolean logAll, int maxSize)

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
String dirPath

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.

boolean logAll

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.

int maxSize

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

startNetLogToFile

public abstract void startNetLogToFile(String fileName, boolean logAll)

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
String fileName

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

boolean logAll

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

public abstract void stopNetLog()

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