CronetEngine

abstract class CronetEngine

Subclases directas conocidas
Subclases indirectas conocidas
JavaCronetEngine

CronetEngine respaldado por java.net.HttpURLConnection.


Es un motor para procesar UrlRequests que usa la mejor pila de HTTP disponible en la plataforma actual. Se puede crear una instancia de esta clase con Builder.

Resumen

Tipos anidados

Es un compilador de CronetEngine que permite la configuración en el tiempo de ejecución de CronetEngine.

Clase que proporciona un método para cargar la biblioteca nativa de Cronet.

Constantes

const Int

Se desconoce el valor del recuento de solicitudes activas.

const Int

Se desconoce el valor de una métrica de conexión.

const Int

La estimación del tipo de conexión real es 2G.

const Int

La estimación del tipo de conexión real es 3G.

const Int

La estimación del tipo de conexión real es 4G.

const Int

El dispositivo está sin conexión.

const Int

La estimación del tipo de conexión real es 2G lenta.

const Int

Se desconoce la estimación del tipo de conexión real.

const Long

Es el valor que se usará para deshacer cualquier vinculación de red anterior.

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.

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

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

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

Crea un compilador para UrlRequest.

abstract URLConnection!

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

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.

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

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

Inicia el registro de NetLog en un archivo.

abstract Unit

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

Constantes

ACTIVE_REQUEST_COUNT_UNKNOWN

const val ACTIVE_REQUEST_COUNT_UNKNOWN = -1: Int

Se desconoce el valor del recuento de solicitudes activas.

CONNECTION_METRIC_UNKNOWN

const val CONNECTION_METRIC_UNKNOWN = -1: Int

Se desconoce el valor de una métrica de conexión.

EFFECTIVE_CONNECTION_TYPE_2G

const val EFFECTIVE_CONNECTION_TYPE_2G = 3: Int

La estimación del tipo de conexión real es 2G.

Consulta también
getEffectiveConnectionType

EFFECTIVE_CONNECTION_TYPE_3G

const val EFFECTIVE_CONNECTION_TYPE_3G = 4: Int

La estimación del tipo de conexión real es 3G.

Consulta también
getEffectiveConnectionType

EFFECTIVE_CONNECTION_TYPE_4G

const val EFFECTIVE_CONNECTION_TYPE_4G = 5: Int

La estimación del tipo de conexión real es 4G.

Consulta también
getEffectiveConnectionType

EFFECTIVE_CONNECTION_TYPE_OFFLINE

const val EFFECTIVE_CONNECTION_TYPE_OFFLINE = 1: Int

El dispositivo está sin conexión.

Consulta también
getEffectiveConnectionType

EFFECTIVE_CONNECTION_TYPE_SLOW_2G

const val EFFECTIVE_CONNECTION_TYPE_SLOW_2G = 2: Int

La estimación del tipo de conexión real es 2G lenta.

Consulta también
getEffectiveConnectionType

EFFECTIVE_CONNECTION_TYPE_UNKNOWN

const val EFFECTIVE_CONNECTION_TYPE_UNKNOWN = 0: Int

Se desconoce la estimación del tipo de conexión real.

Consulta también
getEffectiveConnectionType

UNBIND_NETWORK_HANDLE

const val UNBIND_NETWORK_HANDLE = -1: Long

Es el valor que se usará para deshacer cualquier vinculación de red anterior.

Constructores públicos

CronetEngine

CronetEngine()

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.

createURLStreamHandlerFactory

abstract 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!

Es 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

abstract 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

abstract fun getVersionString(): String!
Muestra
String!

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

newUrlRequestBuilder

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

Crea un compilador para UrlRequest. Todas las devoluciones de llamada para los objetos UrlRequest generados se invocarán en los subprocesos de executor. executor no debe ejecutar tareas en el subproceso que llama a execute para evitar bloquear las operaciones de red y provocar excepciones durante el cierre.

Parámetros
url: String!

Es la URL de las solicitudes generadas.

callback: UrlRequest.Callback!

Objeto de devolución de llamada que se invoca en diferentes eventos.

executor: Executor!

Executor en el que se invocarán todas las devoluciones de llamada.

openConnection

abstract 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

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

abstract 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

abstract 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

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