JavaCronetEngine

public final class JavaCronetEngine extends CronetEngineBase


java.net.HttpURLConnection yang didukung CronetEngine.

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

Ringkasan

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.

ExperimentalUrlRequest
createRequest(
    String url,
    UrlRequest.Callback callback,
    Executor executor,
    int priority,
    Collection<Object> connectionAnnotations,
    boolean disableCache,
    boolean disableConnectionMigration,
    boolean allowDirectExecutor,
    boolean trafficStatsTagSet,
    int trafficStatsTag,
    boolean trafficStatsUidSet,
    int trafficStatsUid,
    RequestFinishedInfo.Listener requestFinishedListener,
    int idempotency,
    long networkHandle,
    String method,
    ArrayList<Map.Entry<StringString>> requestHeaders,
    UploadDataProvider uploadDataProvider,
    Executor uploadDataProviderExecutor,
    byte[] sharedDictionaryHash,
    ByteBuffer sharedDictionary,
    @NonNull String sharedDictionaryId
)
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.

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.

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.

void

Menghapus pemroses permintaan selesai.

void

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

void

Menghapus pemroses throughput.

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.

void
startNetLogToFile(String fileName, boolean logAll)

Mulai mencatat log NetLog ke file.

void

Menghentikan logging NetLog dan menghapus file ke disk.

Metode yang dilindungi

ExperimentalBidirectionalStream
createBidirectionalStream(
    String url,
    BidirectionalStream.Callback callback,
    Executor executor,
    String httpMethod,
    List<Map.Entry<StringString>> requestHeaders,
    @CronetEngineBase.StreamPriority int priority,
    boolean delayRequestHeadersUntilFirstFlush,
    Collection<Object> connectionAnnotations,
    boolean trafficStatsTagSet,
    int trafficStatsTag,
    boolean trafficStatsUidSet,
    int trafficStatsUid,
    long networkHandle
)

Konstanta Turunan

Dari org.chromium.net.CronetEngine
static final int

Nilai jumlah permintaan aktif tidak diketahui

Dari org.chromium.net.impl.CronetEngineBase
static final long

Metode turunan

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

Membuat builder untuk UrlRequest.

Konstruktor publik

JavaCronetEngine

public JavaCronetEngine(CronetEngineBuilderImpl builder)

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.

createRequest

public ExperimentalUrlRequest createRequest(
    String url,
    UrlRequest.Callback callback,
    Executor executor,
    int priority,
    Collection<Object> connectionAnnotations,
    boolean disableCache,
    boolean disableConnectionMigration,
    boolean allowDirectExecutor,
    boolean trafficStatsTagSet,
    int trafficStatsTag,
    boolean trafficStatsUidSet,
    int trafficStatsUid,
    RequestFinishedInfo.Listener requestFinishedListener,
    int idempotency,
    long networkHandle,
    String method,
    ArrayList<Map.Entry<StringString>> requestHeaders,
    UploadDataProvider uploadDataProvider,
    Executor uploadDataProviderExecutor,
    byte[] sharedDictionaryHash,
    ByteBuffer sharedDictionary,
    @NonNull String sharedDictionaryId
)

createURLStreamHandlerFactory

public 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 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 String getVersionString()
Hasil
String

string versi mesin yang dapat dibaca manusia.

openConnection

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

openConnection

public URLConnection openConnection(URL url, Proxy proxy)

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

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 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 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 void stopNetLog()

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

Metode yang dilindungi

createBidirectionalStream

protected ExperimentalBidirectionalStream createBidirectionalStream(
    String url,
    BidirectionalStream.Callback callback,
    Executor executor,
    String httpMethod,
    List<Map.Entry<StringString>> requestHeaders,
    @CronetEngineBase.StreamPriority int priority,
    boolean delayRequestHeadersUntilFirstFlush,
    Collection<Object> connectionAnnotations,
    boolean trafficStatsTagSet,
    int trafficStatsTag,
    boolean trafficStatsUidSet,
    int trafficStatsUid,
    long networkHandle
)