JavaCronetEngine

class JavaCronetEngine : CronetEngineBase


CronetEngine respaldado por java.net.HttpURLConnection.

No admite netlogs, medición de datos transferidos, bidistream, caché ni prioridad.

Resumen

Constructores públicos

Funciones públicas

Unit

Registra un objeto de escucha que se llama después del final de cada solicitud con la información de la solicitud.

Unit

Registra un objeto de escucha que se llama cada vez que el estimador de calidad de la red observa un tiempo de ida y vuelta de muestra.

Unit

Registra un objeto de escucha que se llama cada vez que el estimador de calidad de la red observa una medición del rendimiento de la muestra.

Unit
bindToNetwork(networkHandle: Long)

Vincula el motor al identificador de red especificado.

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

Configura el estimador de calidad de la red para las pruebas.

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 para controlar el tráfico HTTP y HTTPS.

Int

Devuelve la cantidad de solicitudes activas.

Int

Devuelve la estimación de capacidad de procesamiento de descarga (en kilobits por segundo) que calcula el estimador de calidad de la red.

Int

Devuelve una estimación del tipo de conexión efectiva que calcula el estimador de calidad de la red.

ByteArray<Byte>!

Esta función es obsoleta.

En las versiones modernas de Cronet, siempre se devolverá un array vacío.

Int

Devuelve la estimación del RTT de HTTP (en milisegundos) que calcula el estimador de calidad de la red.

Int

Devuelve la estimación del RTT del transporte (en milisegundos) que calcula el estimador de calidad de la red.

String!
URLConnection!

Establece una conexión nueva con el recurso especificado por URLurl.

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

Establece una nueva conexión con el recurso especificado por URLurl usando el proxy determinado.

Unit

Quita un objeto de escucha de solicitud finalizada.

Unit

Quita un objeto de escucha de los tiempos de viaje de ida y vuelta si se registró previamente con addRttListener.

Unit

Quita un objeto de escucha de rendimiento.

Unit

Cierra el CronetEngine si no hay solicitudes activas; de lo contrario, arroja una excepción.

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

Inicia el registro de NetLog en un directorio especificado con un tamaño limitado.

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

Inicia el registro de NetLog en un archivo.

Unit

Detiene el registro de NetLog y vacía el archivo en el disco.

Funciones protegidas

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
)

Constantes heredadas

De org.chromium.net.CronetEngine
const Int

Se desconoce el valor del recuento de solicitudes activas.

De org.chromium.net.impl.CronetEngineBase

Funciones heredadas

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

Crea un compilador para UrlRequest.

Constructores públicos

JavaCronetEngine

JavaCronetEngine(builder: CronetEngineBuilderImpl!)

Funciones públicas

addRequestFinishedListener

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

Registra un objeto de escucha que se llama después del final de cada solicitud con la información de la solicitud.

Se llama al objeto de escucha en un java.util.concurrent.Executor proporcionado por el objeto de escucha.

Parámetros
listener: RequestFinishedInfo.Listener!

Es el objeto de escucha para las solicitudes finalizadas.

addRttListener

fun addRttListener(listener: NetworkQualityRttListener!): Unit

Registra un objeto de escucha que se llama cada vez que el estimador de calidad de la red observa un tiempo de ida y vuelta de muestra. Se debe llamar después de enableNetworkQualityEstimator y, de lo contrario, arrojará una excepción. Los tiempos de ida y vuelta se pueden registrar en varias capas de la pila de red, incluidas TCP, QUIC y la capa de solicitud de URL. Se llama al objeto de escucha en el java.util.concurrent.Executor que se pasa a enableNetworkQualityEstimator.

Parámetros
listener: NetworkQualityRttListener!

Es el objeto de escucha de los tiempos de ida y vuelta.

addThroughputListener

fun addThroughputListener(listener: NetworkQualityThroughputListener!): Unit

Registra un objeto de escucha que se llama cada vez que el estimador de calidad de la red observa una medición del rendimiento de la muestra. Se debe llamar después de enableNetworkQualityEstimator. Las observaciones de capacidad de procesamiento se calculan midiendo los bytes leídos a través de la interfaz de red activa en los momentos en que se recibe al menos una respuesta de URL. Se llama al objeto de escucha en el java.util.concurrent.Executor que se pasa a enableNetworkQualityEstimator.

Parámetros
listener: NetworkQualityThroughputListener!

es el objeto de escucha del rendimiento.

bindToNetwork

fun bindToNetwork(networkHandle: Long): Unit

Vincula el motor al identificador de red especificado. Todas las solicitudes creadas a través de este motor usarán la red asociada a este identificador. Si se desconecta esta red, fallarán todas las solicitudes. El error exacto dependerá de la etapa de procesamiento de la solicitud en la que se desconecte la red. Los identificadores de red se pueden obtener a través de Network#getNetworkHandle. Solo disponible a partir de Android Marshmallow.

Parámetros
networkHandle: Long

Es el identificador de red al que se debe vincular el motor. Especifica UNBIND_NETWORK_HANDLE para desvincular.

configureNetworkQualityEstimatorForTesting

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

Configura el estimador de calidad de la red para las pruebas. Se debe llamar a este método antes de agregar los objetos de escucha del tiempo de ida y vuelta y la capacidad de procesamiento, y después de habilitar el estimador de calidad de la red.

Parámetros
useLocalHostRequests: Boolean

Incluir solicitudes a localhost en las estimaciones

useSmallerResponses: Boolean

Incluye respuestas pequeñas en las estimaciones de rendimiento.

disableOfflineCheck: Boolean

Cuando se establece en verdadero, inhabilita las verificaciones sin conexión del dispositivo cuando se calcula el tipo de conexión efectivo o cuando se escriben las preferencias.

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 para controlar el tráfico HTTP y HTTPS. Se puede instalar una instancia de esta clase a través de setURLStreamHandlerFactory, por lo que se usa este CronetEngine de forma predeterminada para todas las solicitudes creadas a través de openConnection.

Cronet no usa ciertas funciones de HTTP proporcionadas a través del sistema:

Si bien Cronet admite y recomienda las solicitudes que usan el protocolo HTTPS, no proporciona compatibilidad con la API de HttpsURLConnection. Esta falta de compatibilidad también incluye no usar ciertas funciones de HTTPS proporcionadas a través del sistema:

Muestra
URLStreamHandlerFactory!

una instancia de URLStreamHandlerFactory implementada por este CronetEngine

getActiveRequestCount

fun getActiveRequestCount(): Int

Devuelve la cantidad de solicitudes activas.

Una solicitud se vuelve "activa" en UrlRequest.start(), suponiendo que ese método no arroje una excepción. Se vuelve inactivo cuando todas las devoluciones de llamada se completaron y no se pueden activar devoluciones de llamada adicionales en el futuro. En la práctica, esto significa que la solicitud está inactiva una vez que se devolvieron onSucceeded/onCanceled/onFailed y todos los objetos de escucha de finalización de la solicitud. Ciclo de vida de las solicitudes de Cronet para obtener más información.

getDownstreamThroughputKbps

fun getDownstreamThroughputKbps(): Int

Devuelve la estimación de capacidad de procesamiento de descarga (en kilobits por segundo) que calcula el estimador de calidad de la red. Se establece en CONNECTION_METRIC_UNKNOWN si el valor no está disponible. Se debe llamar después de enableNetworkQualityEstimator; de lo contrario, se arrojará una excepción.

Muestra
Int

Es una estimación de la capacidad de procesamiento de descarga en kilobits por segundo.

getEffectiveConnectionType

fun getEffectiveConnectionType(): Int

Devuelve una estimación del tipo de conexión efectiva que calcula el estimador de calidad de la red. Llama a enableNetworkQualityEstimator para comenzar a calcular este valor.

Muestra
Int

El tipo de conexión estimado. El valor que se muestra es uno de los siguientes: EFFECTIVE_CONNECTION_TYPE_* .

getGlobalMetricsDeltas

fun getGlobalMetricsDeltas(): ByteArray<Byte>!

getHttpRttMs

fun getHttpRttMs(): Int

Devuelve la estimación del RTT de HTTP (en milisegundos) que calcula el estimador de calidad de la red. Se establece en CONNECTION_METRIC_UNKNOWN si el valor no está disponible. Se debe llamar después de enableNetworkQualityEstimator; de lo contrario, se arrojará una excepción.

Muestra
Int

Es la estimación del RTT de HTTP en milisegundos.

getTransportRttMs

fun getTransportRttMs(): Int

Devuelve la estimación del RTT del transporte (en milisegundos) que calcula el estimador de calidad de la red. Se establece en CONNECTION_METRIC_UNKNOWN si el valor no está disponible. Se debe llamar después de enableNetworkQualityEstimator; de lo contrario, se arrojará una excepción.

Muestra
Int

Es la estimación del RTT del transporte en milisegundos.

getVersionString

fun getVersionString(): String!
Muestra
String!

Es una cadena de versión del motor legible por humanos.

openConnection

fun openConnection(url: URL!): URLConnection!

Establece una conexión nueva con el recurso especificado por URLurl.

Nota: La implementación de java.net.HttpURLConnection de Cronet está sujeta a ciertas limitaciones. Consulta createURLStreamHandlerFactory para obtener más detalles.

Parámetros
url: URL!

Es la URL del recurso al que se conectará.

Muestra
URLConnection!

Es una instancia de java.net.HttpURLConnection implementada por este CronetEngine.

Arroja
java.io.IOException

Si se produce un error al abrir la conexión

openConnection

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

Establece una nueva conexión con el recurso especificado por URLurl usando el proxy determinado.

Nota: La implementación de java.net.HttpURLConnection de Cronet está sujeta a ciertas limitaciones. Consulta createURLStreamHandlerFactory para obtener más detalles.

Parámetros
url: URL!

Es la URL del recurso al que se conectará.

proxy: Proxy!

Es el proxy que se usará cuando se establezca la conexión.

Muestra
URLConnection!

Es una instancia de java.net.HttpURLConnection implementada por este CronetEngine.

Arroja
java.io.IOException

Si se produce un error al abrir la conexión

removeRequestFinishedListener

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

Quita un objeto de escucha de solicitud finalizada.

Parámetros
listener: RequestFinishedInfo.Listener!

Es el objeto de escucha que se quitará.

removeRttListener

fun removeRttListener(listener: NetworkQualityRttListener!): Unit

Quita un objeto de escucha de los tiempos de viaje de ida y vuelta si se registró previamente con addRttListener. Se debe llamar después de que se agrega un NetworkQualityRttListener para dejar de recibir observaciones.

Parámetros
listener: NetworkQualityRttListener!

Es el objeto de escucha de los tiempos de ida y vuelta.

removeThroughputListener

fun removeThroughputListener(listener: NetworkQualityThroughputListener!): Unit

Quita un objeto de escucha de rendimiento. Se debe llamar después de que se agregue un NetworkQualityThroughputListener con addThroughputListener para dejar de recibir observaciones.

Parámetros
listener: NetworkQualityThroughputListener!

es el objeto de escucha del rendimiento.

shutdown

fun shutdown(): Unit

Cierra el CronetEngine si no hay solicitudes activas; de lo contrario, arroja una excepción.

No se puede llamar en el subproceso de red, el subproceso en el que Cronet llama a Executor (que es diferente del subproceso en el que Executor invoca devoluciones de llamada). Es posible que se bloquee hasta que se limpien todos los recursos de CronetEngine.

startNetLogToDisk

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

Inicia el registro de NetLog en un directorio especificado con un tamaño limitado. El registro de NetLog contendrá eventos emitidos por todos los objetos CronetEngine activos. NetLog es útil para la depuración. Una vez que se detenga el registro stopNetLog, los datos se escribirán en netlog.json en dirPath. Si se interrumpe el registro, puedes unir los archivos que se encuentran en el subdirectorio .inprogress de forma manual con https://chromium.googlesource.com/chromium/src/+/main/net/tools/stitch_net_log_files.py. El registro se puede ver con un navegador Chrome que navega a chrome://net-internals/#import.

Parámetros
dirPath: String!

Es el directorio en el que se creará el archivo netlog.json. dirPath ya debe existir. No debe haber archivos de NetLog en el directorio. Si se está registrando de forma activa, se ignorará este método.

logAll: Boolean

true para incluir eventos básicos, cookies de usuario, credenciales y todos los bytes transferidos en el registro Esta opción presenta un riesgo para la privacidad, ya que expone las credenciales del usuario, y solo debe usarse con el consentimiento del usuario y en situaciones en las que el registro no será público. false para incluir solo eventos básicos

maxSize: Int

Es el espacio total máximo en disco, en bytes, que debe usar NetLog. Es posible que el uso real del espacio en el disco supere ligeramente este límite.

startNetLogToFile

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

Inicia el registro de NetLog en un archivo. El registro de NetLog contendrá eventos emitidos por todos los objetos CronetEngine activos. NetLog es útil para la depuración. El archivo se puede ver con un navegador Chrome que navega a chrome://net-internals/#import

Parámetros
fileName: String!

ruta de acceso completa al archivo No debe estar vacío. Si el archivo existe, se trunca antes de comenzar. Si se está registrando de forma activa, se ignorará este método.

logAll: Boolean

true para incluir eventos básicos, cookies de usuario, credenciales y todos los bytes transferidos en el registro Esta opción presenta un riesgo para la privacidad, ya que expone las credenciales del usuario, y solo debe usarse con el consentimiento del usuario y en situaciones en las que el registro no será público. false para incluir solo eventos básicos

stopNetLog

fun stopNetLog(): Unit

Detiene el registro de NetLog y vacía el archivo en el disco. Si no hay una sesión de registro en curso, se ignora esta llamada.

Funciones protegidas

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!