JavaCronetEngine

class JavaCronetEngine : CronetEngineBase


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

Non supporta netlog, misurazione dei dati trasferiti, bidistream, cache o priorità.

Riepilogo

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.

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!

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.

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.

String!
URLConnection!

Stabilisce una nuova connessione alla risorsa specificata da URLurl.

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

Stabilisce una nuova connessione alla risorsa specificata da URLurl utilizzando il proxy specificato.

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.

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.

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

Avvia la registrazione di NetLog in un file.

Unit

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

Funzioni protette

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
)

Costanti ereditate

Da org.chromium.net.CronetEngine
const Int

Il valore del conteggio delle richieste attive è sconosciuto

Da org.chromium.net.impl.CronetEngineBase

Funzioni ereditate

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

Crea un builder per UrlRequest.

Costruttori pubblici

JavaCronetEngine

JavaCronetEngine(builder: CronetEngineBuilderImpl!)

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.

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!

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

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

fun getVersionString(): String!
Resi
String!

una stringa di versione del motore leggibile.

openConnection

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.

openConnection

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

Stabilisce una nuova connessione alla risorsa specificata da URLurl utilizzando il proxy specificato.

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.

proxy: Proxy!

proxy da utilizzare per stabilire la connessione.

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

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

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

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.

Funzioni protette

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!