JavaCronetEngine

class JavaCronetEngine : CronetEngineBase


java.net.HttpURLConnection com suporte do CronetEngine.

Não oferece suporte a netlogs, medição de dados transferidos, bidistream, cache ou prioridade.

Resumo

Construtores públicos

Funções públicas

Unit

Registra um listener que é chamado após o fim de cada solicitação com as informações dela.

Unit

Registra um listener que é chamado sempre que o estimador de qualidade da rede detecta um tempo de ida e volta de amostra.

Unit

Registra um listener que é chamado sempre que o estimador de qualidade da rede testemunha uma medição de capacidade de processamento de amostra.

Unit
bindToNetwork(networkHandle: Long)

Vincula o mecanismo ao identificador de rede especificado.

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

Configura o estimador de qualidade da rede para testes.

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!

Cria um URLStreamHandlerFactory para processar o tráfego HTTP e HTTPS.

Int

Retorna o número de solicitações ativas.

Int

Retorna a estimativa de capacidade de downstream (em quilobits por segundo) calculada pelo estimador de qualidade da rede.

Int

Retorna uma estimativa do tipo de conexão efetivo calculado pelo estimador de qualidade da rede.

ByteArray<Byte>!

Essa função foi descontinuada.

Em versões modernas do Cronet, isso sempre vai retornar uma matriz vazia.

Int

Retorna a estimativa de RTT HTTP (em milissegundos) calculada pelo estimador de qualidade da rede.

Int

Retorna a estimativa de RTT de transporte (em milissegundos) calculada pelo estimador de qualidade da rede.

String!
URLConnection!

Estabelece uma nova conexão com o recurso especificado pelo URLurl.

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

Estabelece uma nova conexão com o recurso especificado pelo URLurl usando o proxy fornecido.

Unit

Remove um listener de solicitação concluída.

Unit

Remove um listener de tempos de ida e volta se ele tiver sido registrado anteriormente com addRttListener.

Unit

Remove um listener de taxa de transferência.

Unit

Desliga o CronetEngine se não houver solicitações ativas. Caso contrário, gera uma exceção.

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

Inicia o registro do NetLog em um diretório especificado com um tamanho limitado.

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

Inicia o registro do NetLog em um arquivo.

Unit

Interrompe o registro do NetLog e libera o arquivo no disco.

Funções 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 herdadas

De org.chromium.net.CronetEngine
const Int

O valor da contagem de solicitações ativas é desconhecido

De org.chromium.net.impl.CronetEngineBase

Funções herdadas

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

Cria um builder para UrlRequest.

Construtores públicos

JavaCronetEngine

JavaCronetEngine(builder: CronetEngineBuilderImpl!)

Funções públicas

addRequestFinishedListener

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

Registra um listener que é chamado após o fim de cada solicitação com as informações dela.

O listener é chamado em um java.util.concurrent.Executor fornecido por ele.

Parâmetros
listener: RequestFinishedInfo.Listener!

o listener para solicitações concluídas.

addRttListener

fun addRttListener(listener: NetworkQualityRttListener!): Unit

Registra um listener que é chamado sempre que o estimador de qualidade da rede detecta um tempo de ida e volta de amostra. Ele precisa ser chamado após enableNetworkQualityEstimator. Caso contrário, uma exceção será gerada. Os tempos de retorno podem ser registrados em várias camadas da pilha de rede, incluindo TCP, QUIC e na camada de solicitação de URL. O listener é chamado no java.util.concurrent.Executor transmitido para enableNetworkQualityEstimator.

Parâmetros
listener: NetworkQualityRttListener!

o listener de tempos de retorno.

addThroughputListener

fun addThroughputListener(listener: NetworkQualityThroughputListener!): Unit

Registra um listener que é chamado sempre que o estimador de qualidade da rede testemunha uma medição de capacidade de processamento de amostra. Ele precisa ser chamado depois de enableNetworkQualityEstimator. As observações de capacidade de processamento são calculadas medindo os bytes lidos na interface de rede ativa quando pelo menos uma resposta de URL está sendo recebida. O listener é chamado no java.util.concurrent.Executor transmitido para enableNetworkQualityEstimator.

Parâmetros
listener: NetworkQualityThroughputListener!

o listener de capacidade de transmissão.

bindToNetwork

fun bindToNetwork(networkHandle: Long): Unit

Vincula o mecanismo ao identificador de rede especificado. Todas as solicitações criadas por esse mecanismo vão usar a rede associada a esse identificador. Se essa rede for desconectada, todas as solicitações vão falhar. O erro exato vai depender da etapa de processamento da solicitação quando a rede for desconectada. Os identificadores de rede podem ser obtidos usando Network#getNetworkHandle. Disponível apenas a partir do Android Marshmallow.

Parâmetros
networkHandle: Long

o identificador de rede para vincular o mecanismo. Especifique UNBIND_NETWORK_HANDLE para desvincular.

configureNetworkQualityEstimatorForTesting

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

Configura o estimador de qualidade da rede para testes. Isso precisa ser chamado antes da adição dos listeners de tempo de retorno e de capacidade de processamento e depois que o estimador de qualidade da rede for ativado.

Parâmetros
useLocalHostRequests: Boolean

incluir solicitações para localhost nas estimativas.

useSmallerResponses: Boolean

incluir respostas pequenas nas estimativas de capacidade.

disableOfflineCheck: Boolean

Quando definido como verdadeiro, desativa as verificações off-line do dispositivo ao calcular o tipo de conexão efetivo ou ao gravar as preferências.

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!

Cria um URLStreamHandlerFactory para processar o tráfego HTTP e HTTPS. Uma instância dessa classe pode ser instalada via setURLStreamHandlerFactory, usando assim esse CronetEngine por padrão para todas as solicitações criadas via openConnection.

O Cronet não usa determinados recursos HTTP fornecidos pelo sistema:

Embora a Cronet ofereça suporte e incentive solicitações usando o protocolo HTTPS, ela não oferece suporte à API HttpsURLConnection. Essa falta de suporte também inclui não usar determinados recursos HTTPS fornecidos pelo sistema:

Retorna
URLStreamHandlerFactory!

uma instância URLStreamHandlerFactory implementada por este CronetEngine.

getActiveRequestCount

fun getActiveRequestCount(): Int

Retorna o número de solicitações ativas.

Uma solicitação se torna "ativa" em UrlRequest.start(), supondo que esse método não gere uma exceção. Ele fica inativo quando todos os callbacks são retornados e nenhum outro pode ser acionado no futuro. Na prática, isso significa que a solicitação fica inativa quando onSucceeded/onCanceled/onFailed é retornado e todos os listeners de solicitação concluída são retornados. Ciclo de vida das solicitações da Cronet para mais informações.

getDownstreamThroughputKbps

fun getDownstreamThroughputKbps(): Int

Retorna a estimativa de capacidade de downstream (em quilobits por segundo) calculada pelo estimador de qualidade da rede. Defina como CONNECTION_METRIC_UNKNOWN se o valor não estiver disponível. Ele precisa ser chamado depois de enableNetworkQualityEstimator. Caso contrário, uma exceção será gerada.

Retorna
Int

Estimativa da capacidade de transmissão de downstream em quilobits por segundo.

getEffectiveConnectionType

fun getEffectiveConnectionType(): Int

Retorna uma estimativa do tipo de conexão efetivo calculado pelo estimador de qualidade da rede. Chame enableNetworkQualityEstimator para começar a calcular esse valor.

Retorna
Int

o tipo de conexão estimado. O valor retornado é um dos EFFECTIVE_CONNECTION_TYPE_* .

getGlobalMetricsDeltas

fun getGlobalMetricsDeltas(): ByteArray<Byte>!

getHttpRttMs

fun getHttpRttMs(): Int

Retorna a estimativa de RTT HTTP (em milissegundos) calculada pelo estimador de qualidade da rede. Defina como CONNECTION_METRIC_UNKNOWN se o valor não estiver disponível. Ele precisa ser chamado depois de enableNetworkQualityEstimator. Caso contrário, uma exceção será gerada.

Retorna
Int

Estimativa do RTT HTTP em milissegundos.

getTransportRttMs

fun getTransportRttMs(): Int

Retorna a estimativa de RTT de transporte (em milissegundos) calculada pelo estimador de qualidade da rede. Defina como CONNECTION_METRIC_UNKNOWN se o valor não estiver disponível. Ele precisa ser chamado depois de enableNetworkQualityEstimator. Caso contrário, uma exceção será gerada.

Retorna
Int

Estimativa do RTT de transporte em milissegundos.

getVersionString

fun getVersionString(): String!
Retorna
String!

uma string de versão legível do mecanismo.

openConnection

fun openConnection(url: URL!): URLConnection!

Estabelece uma nova conexão com o recurso especificado pelo URLurl.

Observação:a implementação do java.net.HttpURLConnection do Cronet está sujeita a algumas limitações. Consulte createURLStreamHandlerFactory para mais detalhes.

Parâmetros
url: URL!

URL do recurso a ser conectado.

Retorna
URLConnection!

uma instância java.net.HttpURLConnection implementada por este CronetEngine.

Gera
java.io.IOException

se ocorrer um erro ao abrir a conexão.

openConnection

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

Estabelece uma nova conexão com o recurso especificado pelo URLurl usando o proxy fornecido.

Observação:a implementação do java.net.HttpURLConnection do Cronet está sujeita a algumas limitações. Consulte createURLStreamHandlerFactory para mais detalhes.

Parâmetros
url: URL!

URL do recurso a ser conectado.

proxy: Proxy!

Proxy a ser usado ao estabelecer a conexão.

Retorna
URLConnection!

uma instância java.net.HttpURLConnection implementada por este CronetEngine.

Gera
java.io.IOException

se ocorrer um erro ao abrir a conexão.

removeRequestFinishedListener

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

Remove um listener de solicitação concluída.

Parâmetros
listener: RequestFinishedInfo.Listener!

o listener a ser removido.

removeRttListener

fun removeRttListener(listener: NetworkQualityRttListener!): Unit

Remove um listener de tempos de ida e volta se ele tiver sido registrado anteriormente com addRttListener. Isso precisa ser chamado depois que um NetworkQualityRttListener é adicionado para parar de receber observações.

Parâmetros
listener: NetworkQualityRttListener!

o listener de tempos de retorno.

removeThroughputListener

fun removeThroughputListener(listener: NetworkQualityThroughputListener!): Unit

Remove um listener de taxa de transferência. Isso precisa ser chamado depois que um NetworkQualityThroughputListener é adicionado com addThroughputListener para interromper o recebimento de observações.

Parâmetros
listener: NetworkQualityThroughputListener!

o listener de capacidade de transmissão.

shutdown

fun shutdown(): Unit

Desliga o CronetEngine se não houver solicitações ativas. Caso contrário, gera uma exceção.

Não pode ser chamado na linha de execução de rede. A linha de execução que o Cronet chama no Executor é diferente da linha de execução em que o Executor invoca callbacks. Pode bloquear até que todos os recursos do CronetEngine sejam limpos.

startNetLogToDisk

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

Inicia o registro do NetLog em um diretório especificado com um tamanho limitado. O NetLog vai conter eventos emitidos por todos os CronetEngines ativos. O NetLog é útil para depuração. Quando o registro for interrompido stopNetLog, os dados serão gravados em netlog.json em dirPath. Se o registro for interrompido, você poderá juntar os arquivos encontrados no subdiretório .inprogress manualmente usando: https://chromium.googlesource.com/chromium/src/+/main/net/tools/stitch_net_log_files.py. O registro pode ser visualizado usando um navegador Chrome em chrome://net-internals/#import.

Parâmetros
dirPath: String!

o diretório em que o arquivo netlog.json será criado. dirPath precisa existir. Os arquivos NetLog não podem existir no diretório. Se o registro estiver ativo, esse método será ignorado.

logAll: Boolean

true para incluir eventos básicos, cookies de usuário, credenciais e todos os bytes transferidos no registro. Essa opção apresenta um risco à privacidade, já que expõe as credenciais do usuário. Ela só deve ser usada com o consentimento do usuário e em situações em que o registro não será público. false para incluir apenas eventos básicos.

maxSize: Int

o espaço total máximo em disco em bytes que deve ser usado pelo NetLog. O uso real do espaço em disco pode exceder um pouco esse limite.

startNetLogToFile

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

Inicia o registro do NetLog em um arquivo. O NetLog vai conter eventos emitidos por todos os CronetEngines ativos. O NetLog é útil para depuração. O arquivo pode ser visualizado usando um navegador Chrome em chrome://net-internals/#import

Parâmetros
fileName: String!

o caminho completo do arquivo. Ele não pode ficar em branco. Se o arquivo existir, ele será truncado antes de começar. Se o registro estiver ativo, esse método será ignorado.

logAll: Boolean

true para incluir eventos básicos, cookies de usuário, credenciais e todos os bytes transferidos no registro. Essa opção apresenta um risco à privacidade, já que expõe as credenciais do usuário. Ela só deve ser usada com o consentimento do usuário e em situações em que o registro não será público. false para incluir apenas eventos básicos.

stopNetLog

fun stopNetLog(): Unit

Interrompe o registro do NetLog e libera o arquivo no disco. Se uma sessão de geração de registros não estiver em andamento, essa chamada será ignorada.

Funções 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!