CronetEngine

abstract class CronetEngine

Sottoclassi dirette note
Sottoclassi indirette note
JavaCronetEngine

java.net.HttpURLConnection ha eseguito il backup di CronetEngine.


Un motore per l'elaborazione dei UrlRequest, che utilizza lo stack HTTP migliore disponibile sulla piattaforma attuale. È possibile creare un'istanza di questa classe utilizzando Builder.

Riepilogo

Tipi nidificati

Un builder per CronetEngine, che consente la configurazione di runtime di CronetEngine.

Una classe che fornisce un metodo per caricare la libreria nativa di Cronet.

Costanti

const Int

Il valore del conteggio delle richieste attive è sconosciuto

const Int

Il valore di una metrica di connessione è sconosciuto.

const Int

La stima del tipo effettivo di connessione è 2G.

const Int

La stima del tipo effettivo di connessione è 3G.

const Int

La stima del tipo effettivo di connessione è 4G.

const Int

Il dispositivo è offline.

const Int

La stima del tipo effettivo di connessione è 2G lento.

const Int

La stima del tipo effettivo di connessione è sconosciuta.

const Long

Il valore da utilizzare per annullare qualsiasi associazione di rete precedente.

Costruttori pubblici

Funzioni pubbliche

Unit

Registra un listener che viene chiamato dopo la fine di ogni richiesta con le informazioni sulla richiesta.

Unit

Registra un listener che viene chiamato ogni volta che lo strumento di stima della qualità della rete rileva un tempo di andata e ritorno del campione.

Unit

Registra un listener che viene chiamato ogni volta che lo strumento di stima della qualità della rete rileva una misurazione della velocità effettiva del campione.

Unit
bindToNetwork(networkHandle: Long)

Esegue il binding del motore all'handle di rete specificato.

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

Configura lo strumento di stima della qualità della rete per i test.

abstract URLStreamHandlerFactory!

Crea un URLStreamHandlerFactory per gestire il traffico HTTP e HTTPS.

Int

Restituisce il numero di richieste attive.

Int

Restituisce la stima della velocità effettiva downstream (in kilobit al secondo) calcolata dallo strumento di stima della qualità della rete.

Int

Restituisce una stima del tipo di connessione effettivo calcolato dallo strumento di stima della qualità della rete.

abstract ByteArray<Byte>!

Questa funzione è obsoleta.

Nelle versioni moderne di Cronet, questo valore restituirà sempre un array vuoto.

Int

Restituisce la stima del RTT HTTP (in millisecondi) calcolata dallo strumento di stima della qualità della rete.

Int

Restituisce la stima dell'RTT di trasporto (in millisecondi) calcolata dallo strumento di stima della qualità della rete.

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

Crea un builder per UrlRequest.

abstract URLConnection!

Stabilisce una nuova connessione alla risorsa specificata da URLurl.

Unit

Rimuove un listener di richieste completate.

Unit

Rimuove un listener dei tempi di andata e ritorno se registrato in precedenza con addRttListener.

Unit

Rimuove un listener di throughput.

abstract Unit

Arresta CronetEngine se non ci sono richieste attive, altrimenti genera un'eccezione.

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

Avvia la registrazione di NetLog in una directory specificata con una dimensione limitata.

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

Avvia la registrazione di NetLog in un file.

abstract Unit

Interrompe la registrazione di NetLog e scarica il file sul disco.

Costanti

ACTIVE_REQUEST_COUNT_UNKNOWN

const val ACTIVE_REQUEST_COUNT_UNKNOWN = -1: Int

Il valore del conteggio delle richieste attive è sconosciuto

CONNECTION_METRIC_UNKNOWN

const val CONNECTION_METRIC_UNKNOWN = -1: Int

Il valore di una metrica di connessione è sconosciuto.

EFFECTIVE_CONNECTION_TYPE_2G

const val EFFECTIVE_CONNECTION_TYPE_2G = 3: Int

La stima del tipo effettivo di connessione è 2G.

EFFECTIVE_CONNECTION_TYPE_3G

const val EFFECTIVE_CONNECTION_TYPE_3G = 4: Int

La stima del tipo effettivo di connessione è 3G.

EFFECTIVE_CONNECTION_TYPE_4G

const val EFFECTIVE_CONNECTION_TYPE_4G = 5: Int

La stima del tipo effettivo di connessione è 4G.

EFFECTIVE_CONNECTION_TYPE_OFFLINE

const val EFFECTIVE_CONNECTION_TYPE_OFFLINE = 1: Int

Il dispositivo è offline.

EFFECTIVE_CONNECTION_TYPE_SLOW_2G

const val EFFECTIVE_CONNECTION_TYPE_SLOW_2G = 2: Int

La stima del tipo effettivo di connessione è 2G lento.

EFFECTIVE_CONNECTION_TYPE_UNKNOWN

const val EFFECTIVE_CONNECTION_TYPE_UNKNOWN = 0: Int

La stima del tipo effettivo di connessione è sconosciuta.

UNBIND_NETWORK_HANDLE

const val UNBIND_NETWORK_HANDLE = -1: Long

Il valore da utilizzare per annullare qualsiasi associazione di rete precedente.

Costruttori pubblici

CronetEngine

CronetEngine()

Funzioni pubbliche

addRequestFinishedListener

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

Registra un listener che viene chiamato dopo la fine di ogni richiesta con le informazioni sulla richiesta.

Il listener viene chiamato su un java.util.concurrent.Executor fornito dal listener.

Parametri
listener: RequestFinishedInfo.Listener!

il listener per le richieste completate.

addRttListener

fun addRttListener(listener: NetworkQualityRttListener!): Unit

Registra un listener che viene chiamato ogni volta che lo strumento di stima della qualità della rete rileva un tempo di andata e ritorno del campione. Questo metodo deve essere chiamato dopo enableNetworkQualityEstimator e genererà un'eccezione in caso contrario. I tempi di andata e ritorno possono essere registrati in vari livelli dello stack di rete, tra cui TCP, QUIC e nel livello di richiesta URL. Il listener viene chiamato sul java.util.concurrent.Executor passato a enableNetworkQualityEstimator.

Parametri
listener: NetworkQualityRttListener!

il listener dei tempi di round trip.

addThroughputListener

fun addThroughputListener(listener: NetworkQualityThroughputListener!): Unit

Registra un listener che viene chiamato ogni volta che lo strumento di stima della qualità della rete rileva una misurazione della velocità effettiva del campione. Deve essere chiamato dopo enableNetworkQualityEstimator. Le osservazioni sul throughput vengono calcolate misurando i byte letti sull'interfaccia di rete attiva nei momenti in cui viene ricevuta almeno una risposta URL. Il listener viene chiamato sul java.util.concurrent.Executor passato a enableNetworkQualityEstimator.

Parametri
listener: NetworkQualityThroughputListener!

il listener del throughput.

bindToNetwork

fun bindToNetwork(networkHandle: Long): Unit

Esegue il binding del motore all'handle di rete specificato. Tutte le richieste create tramite questo motore utilizzeranno la rete associata a questo handle. Se questa rete si disconnette, tutte le richieste non andranno a buon fine. L'errore esatto dipende dalla fase di elaborazione della richiesta al momento della disconnessione della rete. Gli handle di rete possono essere ottenuti tramite Network#getNetworkHandle. Disponibile solo a partire da Android Marshmallow.

Parametri
networkHandle: Long

l'handle di rete a cui associare il motore. Specifica UNBIND_NETWORK_HANDLE per annullare l'associazione.

configureNetworkQualityEstimatorForTesting

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

Configura lo strumento di stima della qualità della rete per i test. Questo metodo deve essere chiamato prima che vengano aggiunti i listener del tempo di andata e ritorno e del throughput e dopo che è stato attivato lo strumento di stima della qualità della rete.

Parametri
useLocalHostRequests: Boolean

includere le richieste a localhost nelle stime.

useSmallerResponses: Boolean

includere piccole risposte nelle stime del throughput.

disableOfflineCheck: Boolean

Se impostato su true, disattiva i controlli offline del dispositivo durante il calcolo del tipo di connessione effettivo o durante la scrittura delle preferenze.

createURLStreamHandlerFactory

abstract fun createURLStreamHandlerFactory(): URLStreamHandlerFactory!

Crea un URLStreamHandlerFactory per gestire il traffico HTTP e HTTPS. Un'istanza di questa classe può essere installata tramite setURLStreamHandlerFactory, utilizzando così questo CronetEngine per impostazione predefinita per tutte le richieste create tramite openConnection.

Cronet non utilizza determinate funzionalità HTTP fornite tramite il sistema:

Sebbene Cronet supporti e incoraggi le richieste che utilizzano il protocollo HTTPS, non fornisce supporto per l'API HttpsURLConnection. Questa mancanza di supporto include anche il mancato utilizzo di determinate funzionalità HTTPS fornite tramite il sistema:

Resi
URLStreamHandlerFactory!

un'istanza URLStreamHandlerFactory implementata da questo CronetEngine.

getActiveRequestCount

fun getActiveRequestCount(): Int

Restituisce il numero di richieste attive.

Una richiesta diventa "attiva" in UrlRequest.start(), supponendo che il metodo non generi un'eccezione. Diventa inattivo quando tutti i callback sono stati restituiti e non è possibile attivare callback aggiuntivi in futuro. In pratica, la richiesta è inattiva una volta che onSucceeded/onCanceled/onFailed è stato restituito e tutti i listener di fine richiesta sono stati restituiti. Ciclo di vita delle richieste Cronet per ulteriori informazioni.

getDownstreamThroughputKbps

fun getDownstreamThroughputKbps(): Int

Restituisce la stima della velocità effettiva downstream (in kilobit al secondo) calcolata dallo strumento di stima della qualità della rete. Imposta CONNECTION_METRIC_UNKNOWN se il valore non è disponibile. Questo metodo deve essere chiamato dopo enableNetworkQualityEstimator, altrimenti verrà generata un'eccezione.

Resi
Int

Stima del throughput downstream in kilobit al secondo.

getEffectiveConnectionType

fun getEffectiveConnectionType(): Int

Restituisce una stima del tipo di connessione effettivo calcolato dallo strumento di stima della qualità della rete. Chiama enableNetworkQualityEstimator per iniziare a calcolare questo valore.

Resi
Int

il tipo di connessione stimato. Il valore restituito è uno dei seguenti: EFFECTIVE_CONNECTION_TYPE_* .

getGlobalMetricsDeltas

abstract fun getGlobalMetricsDeltas(): ByteArray<Byte>!

getHttpRttMs

fun getHttpRttMs(): Int

Restituisce la stima del RTT HTTP (in millisecondi) calcolata dallo strumento di stima della qualità della rete. Imposta CONNECTION_METRIC_UNKNOWN se il valore non è disponibile. Questo metodo deve essere chiamato dopo enableNetworkQualityEstimator, altrimenti verrà generata un'eccezione.

Resi
Int

Stima dell'RTT HTTP in millisecondi.

getTransportRttMs

fun getTransportRttMs(): Int

Restituisce la stima dell'RTT di trasporto (in millisecondi) calcolata dallo strumento di stima della qualità della rete. Imposta CONNECTION_METRIC_UNKNOWN se il valore non è disponibile. Questo metodo deve essere chiamato dopo enableNetworkQualityEstimator, altrimenti verrà generata un'eccezione.

Resi
Int

Stima dell'RTT di trasporto in millisecondi.

getVersionString

abstract fun getVersionString(): String!
Resi
String!

una stringa di versione del motore leggibile.

newUrlRequestBuilder

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

Crea un builder per UrlRequest. Tutte le callback per gli oggetti UrlRequest generati verranno richiamate sui thread di executor. executor non deve eseguire attività sul thread che chiama execute per evitare di bloccare le operazioni di rete e causare eccezioni durante l'arresto.

Parametri
url: String!

URL per le richieste generate.

callback: UrlRequest.Callback!

oggetto di callback richiamato in diversi eventi.

executor: Executor!

Executor su cui verranno richiamate tutte le callback.

openConnection

abstract fun openConnection(url: URL!): URLConnection!

Stabilisce una nuova connessione alla risorsa specificata da URLurl.

Nota:l'implementazione di java.net.HttpURLConnection di Cronet è soggetta a determinate limitazioni. Per ulteriori dettagli, consulta createURLStreamHandlerFactory.

Parametri
url: URL!

URL della risorsa a cui connettersi.

Resi
URLConnection!

un'istanza java.net.HttpURLConnection implementata da questo CronetEngine.

Genera
java.io.IOException

se si verifica un errore durante l'apertura della connessione.

removeRequestFinishedListener

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

Rimuove un listener di richieste completate.

Parametri
listener: RequestFinishedInfo.Listener!

l'ascoltatore da rimuovere.

removeRttListener

fun removeRttListener(listener: NetworkQualityRttListener!): Unit

Rimuove un listener dei tempi di andata e ritorno se registrato in precedenza con addRttListener. Questo metodo deve essere chiamato dopo l'aggiunta di un NetworkQualityRttListener per interrompere la ricezione delle osservazioni.

Parametri
listener: NetworkQualityRttListener!

il listener dei tempi di round trip.

removeThroughputListener

fun removeThroughputListener(listener: NetworkQualityThroughputListener!): Unit

Rimuove un listener di throughput. Questo metodo deve essere chiamato dopo l'aggiunta di un NetworkQualityThroughputListener con addThroughputListener per interrompere la ricezione delle osservazioni.

Parametri
listener: NetworkQualityThroughputListener!

il listener del throughput.

shutdown

abstract fun shutdown(): Unit

Arresta CronetEngine se non ci sono richieste attive, altrimenti genera un'eccezione.

Non può essere chiamato sul thread di rete, ovvero il thread in cui Cronet chiama Executor (che è diverso dal thread in cui Executor richiama i callback). Potrebbe bloccare fino a quando non saranno state rimosse tutte le risorse di CronetEngine.

startNetLogToDisk

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

Avvia la registrazione di NetLog in una directory specificata con una dimensione limitata. Il log di rete conterrà gli eventi emessi da tutti i CronetEngine attivi. Il log di rete è utile per il debug. Una volta interrotta la registrazione stopNetLog, i dati verranno scritti in netlog.json in dirPath. Se la registrazione viene interrotta, puoi unire manualmente i file trovati nella sottodirectory .inprogress utilizzando: https://chromium.googlesource.com/chromium/src/+/main/net/tools/stitch_net_log_files.py. Il log può essere visualizzato utilizzando un browser Chrome all'indirizzo chrome://net-internals/#import.

Parametri
dirPath: String!

la directory in cui verrà creato il file netlog.json. dirPath deve già esistere. I file NetLog non devono esistere nella directory. Se il logging è attivo, questo metodo viene ignorato.

logAll: Boolean

true per includere eventi di base, cookie utente, credenziali e tutti i byte trasferiti nel log. Questa opzione presenta un rischio per la privacy, in quanto espone le credenziali dell'utente e deve essere utilizzata solo con il consenso dell'utente e in situazioni in cui il log non sarà pubblico. false per includere solo gli eventi di base.

maxSize: Int

lo spazio su disco totale massimo in byte che deve essere utilizzato da NetLog. L'utilizzo effettivo dello spazio su disco potrebbe superare leggermente questo limite.

startNetLogToFile

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

Avvia la registrazione di NetLog in un file. Il log di rete conterrà gli eventi emessi da tutti i CronetEngine attivi. Il log di rete è utile per il debug. Il file può essere visualizzato utilizzando un browser Chrome all'indirizzo chrome://net-internals/#import

Parametri
fileName: String!

il percorso file completo. Non deve essere vuoto. Se il file esiste, viene troncato prima dell'inizio. Se il logging è attivo, questo metodo viene ignorato.

logAll: Boolean

true per includere eventi di base, cookie utente, credenziali e tutti i byte trasferiti nel log. Questa opzione presenta un rischio per la privacy, in quanto espone le credenziali dell'utente e deve essere utilizzata solo con il consenso dell'utente e in situazioni in cui il log non sarà pubblico. false per includere solo gli eventi di base.

stopNetLog

abstract fun stopNetLog(): Unit

Interrompe la registrazione di NetLog e scarica il file sul disco. Se non è in corso una sessione di registrazione, questa chiamata viene ignorata.