CronetEngine

abstract class CronetEngine

알려진 직접 서브클래스
알려진 간접 하위 클래스

현재 플랫폼에서 사용 가능한 최적의 HTTP 스택을 사용하는 UrlRequest 처리 엔진 이 클래스의 인스턴스는 Builder를 사용하여 만들 수 있습니다.

요약

중첩된 유형

CronetEngine 빌더로, CronetEngine의 런타임 구성을 허용합니다.

Cronet 네이티브 라이브러리를 로드하는 메서드를 제공하는 클래스입니다.

상수

const Int

활성 요청 수의 값을 알 수 없음

const Int

연결 측정항목의 값을 알 수 없습니다.

const Int

효과적인 연결 유형이 2G로 추정됩니다.

const Int

효과적인 연결 유형이 3G로 추정됩니다.

const Int

효과적인 연결 유형이 4G로 추정됩니다.

const Int

기기가 오프라인 상태입니다.

const Int

효과적인 연결 유형이 느린 2G로 추정됩니다.

const Int

효과적인 연결 유형의 추정치를 알 수 없습니다.

const Long

이전 네트워크 바인딩을 실행취소하는 데 사용할 값입니다.

공개 생성자

공개 함수

Unit

요청 정보와 함께 각 요청이 끝난 후 호출되는 리스너를 등록합니다.

Unit

네트워크 품질 추정기가 샘플 왕복 시간을 확인할 때마다 호출되는 리스너를 등록합니다.

Unit

네트워크 품질 추정기가 샘플 처리량 측정을 확인할 때마다 호출되는 리스너를 등록합니다.

Unit
bindToNetwork(networkHandle: Long)

엔진을 지정된 네트워크 핸들에 바인딩합니다.

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

테스트를 위해 네트워크 품질 추정기를 구성합니다.

abstract URLStreamHandlerFactory!

HTTP 및 HTTPS 트래픽을 처리하는 URLStreamHandlerFactory를 만듭니다.

Int

활성 요청 수를 반환합니다.

Int

네트워크 품질 추정기에서 계산한 다운스트림 처리량 추정치 (킬로비트/초)를 반환합니다.

Int

네트워크 품질 추정기에서 계산한 유효 연결 유형의 추정치를 반환합니다.

abstract ByteArray<Byte>!

이 함수는 지원 중단되었습니다.

최신 버전의 Cronet에서는 항상 빈 배열이 반환됩니다.

Int

네트워크 품질 추정기에서 계산한 HTTP RTT 추정치 (밀리초)를 반환합니다.

Int

네트워크 품질 추정기에서 계산한 전송 RTT 추정치 (밀리초)를 반환합니다.

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

UrlRequest 빌더를 만듭니다.

abstract URLConnection!

URLurl로 지정된 리소스에 대한 새 연결을 설정합니다.

Unit

완료된 요청 리스너를 삭제합니다.

Unit

이전에 addRttListener로 등록된 경우 왕복 시간 리스너를 삭제합니다.

Unit

처리량 리스너를 삭제합니다.

abstract Unit

활성 요청이 없으면 CronetEngine를 종료하고, 그렇지 않으면 예외를 발생시킵니다.

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

크기가 제한된 지정된 디렉터리에 NetLog 로깅을 시작합니다.

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

파일에 NetLog 로깅을 시작합니다.

abstract Unit

NetLog 로깅을 중지하고 파일을 디스크에 플러시합니다.

상수

ACTIVE_REQUEST_COUNT_UNKNOWN

const val ACTIVE_REQUEST_COUNT_UNKNOWN = -1: Int

활성 요청 수의 값을 알 수 없음

CONNECTION_METRIC_UNKNOWN

const val CONNECTION_METRIC_UNKNOWN = -1: Int

연결 측정항목의 값을 알 수 없습니다.

EFFECTIVE_CONNECTION_TYPE_2G

const val EFFECTIVE_CONNECTION_TYPE_2G = 3: Int

효과적인 연결 유형이 2G로 추정됩니다.

EFFECTIVE_CONNECTION_TYPE_3G

const val EFFECTIVE_CONNECTION_TYPE_3G = 4: Int

효과적인 연결 유형이 3G로 추정됩니다.

EFFECTIVE_CONNECTION_TYPE_4G

const val EFFECTIVE_CONNECTION_TYPE_4G = 5: Int

효과적인 연결 유형이 4G로 추정됩니다.

EFFECTIVE_CONNECTION_TYPE_OFFLINE

const val EFFECTIVE_CONNECTION_TYPE_OFFLINE = 1: Int

기기가 오프라인 상태입니다.

EFFECTIVE_CONNECTION_TYPE_SLOW_2G

const val EFFECTIVE_CONNECTION_TYPE_SLOW_2G = 2: Int

효과적인 연결 유형이 느린 2G로 추정됩니다.

EFFECTIVE_CONNECTION_TYPE_UNKNOWN

const val EFFECTIVE_CONNECTION_TYPE_UNKNOWN = 0: Int

효과적인 연결 유형의 추정치를 알 수 없습니다.

UNBIND_NETWORK_HANDLE

const val UNBIND_NETWORK_HANDLE = -1: Long

이전 네트워크 바인딩을 실행취소하는 데 사용할 값입니다.

공개 생성자

CronetEngine

CronetEngine()

공개 함수

addRequestFinishedListener

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

요청 정보와 함께 각 요청이 끝난 후 호출되는 리스너를 등록합니다.

리스너는 리스너가 제공한 java.util.concurrent.Executor에서 호출됩니다.

매개변수
listener: RequestFinishedInfo.Listener!

완료된 요청의 리스너입니다.

addRttListener

fun addRttListener(listener: NetworkQualityRttListener!): Unit

네트워크 품질 추정기가 샘플 왕복 시간을 확인할 때마다 호출되는 리스너를 등록합니다. 이 함수는 enableNetworkQualityEstimator 후에 호출해야 하며, 그렇지 않으면 예외가 발생합니다. 왕복 시간은 TCP, QUIC, URL 요청 레이어를 비롯한 네트워크 스택의 다양한 레이어에서 기록될 수 있습니다. 리스너는 enableNetworkQualityEstimator에 전달된 java.util.concurrent.Executor에서 호출됩니다.

매개변수
listener: NetworkQualityRttListener!

왕복 시간 리스너입니다.

addThroughputListener

fun addThroughputListener(listener: NetworkQualityThroughputListener!): Unit

네트워크 품질 추정기가 샘플 처리량 측정을 확인할 때마다 호출되는 리스너를 등록합니다. enableNetworkQualityEstimator 후에 호출해야 합니다. 처리량 관측치는 하나 이상의 URL 응답이 수신되는 시간에 활성 네트워크 인터페이스를 통해 읽은 바이트를 측정하여 계산됩니다. 리스너는 enableNetworkQualityEstimator에 전달된 java.util.concurrent.Executor에서 호출됩니다.

매개변수
listener: NetworkQualityThroughputListener!

처리량 리스너입니다.

bindToNetwork

fun bindToNetwork(networkHandle: Long): Unit

엔진을 지정된 네트워크 핸들에 바인딩합니다. 이 엔진을 통해 생성된 모든 요청은 이 핸들과 연결된 네트워크를 사용합니다. 이 네트워크가 연결 해제되면 모든 요청이 실패하며, 정확한 오류는 네트워크가 연결 해제될 때 요청 처리 단계에 따라 달라집니다. 네트워크 핸들은 Network#getNetworkHandle를 통해 가져올 수 있습니다. Android Marshmallow부터 사용할 수 있습니다.

매개변수
networkHandle: Long

엔진을 바인딩할 네트워크 핸들입니다. UNBIND_NETWORK_HANDLE을 지정하여 바인딩을 해제합니다.

configureNetworkQualityEstimatorForTesting

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

테스트를 위해 네트워크 품질 추정기를 구성합니다. 이 메서드는 왕복 시간 및 처리량 리스너가 추가되기 전, 네트워크 품질 추정기가 사용 설정된 후에 호출해야 합니다.

매개변수
useLocalHostRequests: Boolean

견적에 localhost 요청을 포함합니다.

useSmallerResponses: Boolean

처리량 추정치에 작은 응답을 포함합니다.

disableOfflineCheck: Boolean

true로 설정하면 유효 연결 유형을 계산하거나 환경설정을 쓸 때 기기 오프라인 확인을 사용 중지합니다.

createURLStreamHandlerFactory

abstract fun createURLStreamHandlerFactory(): URLStreamHandlerFactory!

HTTP 및 HTTPS 트래픽을 처리하는 URLStreamHandlerFactory를 만듭니다. 이 클래스의 인스턴스는 setURLStreamHandlerFactory를 통해 설치할 수 있으므로 openConnection을 통해 생성된 모든 요청에 기본적으로 이 CronetEngine을 사용합니다.

Cronet은 시스템을 통해 제공되는 특정 HTTP 기능을 사용하지 않습니다.

Cronet은 HTTPS 프로토콜을 사용하는 요청을 지원하고 권장하지만 HttpsURLConnection API는 지원하지 않습니다. 이러한 지원 부족에는 시스템을 통해 제공되는 특정 HTTPS 기능을 사용하지 않는 것도 포함됩니다.

반환
URLStreamHandlerFactory!

이 CronetEngine에서 구현한 URLStreamHandlerFactory 인스턴스

getActiveRequestCount

fun getActiveRequestCount(): Int

활성 요청 수를 반환합니다.

이 메서드가 예외를 발생시키지 않는다고 가정하면 UrlRequest.start()에서 요청이 '활성'이 됩니다. 모든 콜백이 반환되고 향후 추가 콜백을 트리거할 수 없으면 비활성 상태가 됩니다. 실제로 이는 onSucceeded/onCanceled/onFailed가 반환되고 모든 요청 완료 리스너가 반환되면 요청이 비활성 상태가 된다는 의미입니다. 자세한 내용은 Cronet 요청 수명 주기를 참고하세요.

getDownstreamThroughputKbps

fun getDownstreamThroughputKbps(): Int

네트워크 품질 추정기에서 계산한 다운스트림 처리량 추정치 (킬로비트/초)를 반환합니다. 값을 사용할 수 없는 경우 CONNECTION_METRIC_UNKNOWN로 설정합니다. enableNetworkQualityEstimator 후에 호출해야 하며, 그렇지 않으면 예외가 발생합니다.

반환
Int

다운스트림 처리량의 추정치(kbit/초)입니다.

getEffectiveConnectionType

fun getEffectiveConnectionType(): Int

네트워크 품질 추정기에서 계산한 유효 연결 유형의 추정치를 반환합니다. enableNetworkQualityEstimator를 호출하여 이 값의 계산을 시작합니다.

반환
Int

예상 연결 유형입니다. 반환된 값은 EFFECTIVE_CONNECTION_TYPE_* 중 하나입니다.

getGlobalMetricsDeltas

abstract fun getGlobalMetricsDeltas(): ByteArray<Byte>!

getHttpRttMs

fun getHttpRttMs(): Int

네트워크 품질 추정기에서 계산한 HTTP RTT 추정치 (밀리초)를 반환합니다. 값을 사용할 수 없는 경우 CONNECTION_METRIC_UNKNOWN로 설정합니다. enableNetworkQualityEstimator 후에 호출해야 하며, 그렇지 않으면 예외가 발생합니다.

반환
Int

HTTP RTT 추정치(밀리초)입니다.

getTransportRttMs

fun getTransportRttMs(): Int

네트워크 품질 추정기에서 계산한 전송 RTT 추정치 (밀리초)를 반환합니다. 값을 사용할 수 없는 경우 CONNECTION_METRIC_UNKNOWN로 설정합니다. enableNetworkQualityEstimator 후에 호출해야 하며, 그렇지 않으면 예외가 발생합니다.

반환
Int

전송 RTT 추정치(밀리초)입니다.

getVersionString

abstract fun getVersionString(): String!
반환
String!

엔진의 사람이 읽을 수 있는 버전 문자열입니다.

newUrlRequestBuilder

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

UrlRequest 빌더를 만듭니다. 생성된 UrlRequest 객체의 모든 콜백은 executor의 스레드에서 호출됩니다. executorexecute을 호출하는 스레드에서 작업을 실행하면 안 됩니다. 이렇게 하면 네트워킹 작업이 차단되고 종료 중에 예외가 발생할 수 있습니다.

매개변수
url: String!

생성된 요청의 URL입니다.

callback: UrlRequest.Callback!

다양한 이벤트에서 호출되는 콜백 객체입니다.

executor: Executor!

Executor에서 모든 콜백이 호출됩니다.

openConnection

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

URLurl로 지정된 리소스에 대한 새 연결을 설정합니다.

참고: Cronet의 java.net.HttpURLConnection 구현에는 특정 제한사항이 적용됩니다. 자세한 내용은 createURLStreamHandlerFactory을 참고하세요.

매개변수
url: URL!

연결할 리소스의 URL입니다.

반환
URLConnection!

이 CronetEngine에서 구현한 java.net.HttpURLConnection 인스턴스

생성 값
java.io.IOException

연결을 여는 중에 오류가 발생한 경우

removeRequestFinishedListener

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

완료된 요청 리스너를 삭제합니다.

매개변수
listener: RequestFinishedInfo.Listener!

삭제할 리스너입니다.

removeRttListener

fun removeRttListener(listener: NetworkQualityRttListener!): Unit

이전에 addRttListener로 등록된 경우 왕복 시간 리스너를 삭제합니다. 관찰 수신을 중지하기 위해 NetworkQualityRttListener가 추가된 후에 호출해야 합니다.

매개변수
listener: NetworkQualityRttListener!

왕복 시간 리스너입니다.

removeThroughputListener

fun removeThroughputListener(listener: NetworkQualityThroughputListener!): Unit

처리량 리스너를 삭제합니다. 관찰 수신을 중지하기 위해 addThroughputListener와 함께 NetworkQualityThroughputListener가 추가된 후에 호출해야 합니다.

매개변수
listener: NetworkQualityThroughputListener!

처리량 리스너입니다.

shutdown

abstract fun shutdown(): Unit

활성 요청이 없으면 CronetEngine를 종료하고, 그렇지 않으면 예외를 발생시킵니다.

네트워크 스레드에서 호출할 수 없습니다. Cronet이 Executor를 호출하는 스레드 (Executor가 콜백을 호출하는 스레드와 다름)입니다. 모든 CronetEngine 리소스가 정리될 때까지 차단될 수 있습니다.

startNetLogToDisk

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

크기가 제한된 지정된 디렉터리에 NetLog 로깅을 시작합니다. NetLog에는 모든 활성 CronetEngine에서 내보낸 이벤트가 포함됩니다. NetLog는 디버깅에 유용합니다. stopNetLog 로깅이 중지되면 데이터가 dirPath의 netlog.json에 기록됩니다. 로깅이 중단되면 https://chromium .googlesource.com/chromium/src/+/main/net/tools/stitch_net_log_files.py를 사용하여.inprogress 하위 디렉터리에서 찾은 파일을 수동으로 스티치할 수 있습니다. 로그는 chrome://net-internals/#import로 이동한 Chrome 브라우저를 사용하여 볼 수 있습니다.

매개변수
dirPath: String!

netlog.json 파일이 생성될 디렉터리입니다. dirPath는 이미 존재해야 합니다. NetLog 파일이 디렉터리에 있으면 안 됩니다. 활성 로깅 중인 경우 이 메서드는 무시됩니다.

logAll: Boolean

true: 기본 이벤트, 사용자 쿠키, 사용자 인증 정보, 전송된 모든 바이트를 로그에 포함합니다. 이 옵션은 사용자의 사용자 인증 정보를 노출하므로 개인 정보 보호 위험이 있으며, 사용자의 동의가 있고 로그가 공개되지 않는 상황에서만 사용해야 합니다. false를 사용하여 기본 이벤트만 포함합니다.

maxSize: Int

NetLog에서 사용해야 하는 최대 총 디스크 공간(바이트)입니다. 실제 디스크 공간 사용량이 이 한도를 약간 초과할 수 있습니다.

startNetLogToFile

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

파일에 NetLog 로깅을 시작합니다. NetLog에는 모든 활성 CronetEngine에서 내보낸 이벤트가 포함됩니다. NetLog는 디버깅에 유용합니다. chrome://net-internals/#import로 이동한 Chrome 브라우저를 사용하여 파일을 볼 수 있습니다.

매개변수
fileName: String!

전체 파일 경로입니다. 비워 둘 수 없습니다. 파일이 있으면 시작 전에 잘립니다. 활성 로깅 중인 경우 이 메서드는 무시됩니다.

logAll: Boolean

true: 기본 이벤트, 사용자 쿠키, 사용자 인증 정보, 전송된 모든 바이트를 로그에 포함합니다. 이 옵션은 사용자의 사용자 인증 정보를 노출하므로 개인 정보 보호 위험이 있으며, 사용자의 동의가 있고 로그가 공개되지 않는 상황에서만 사용해야 합니다. false를 사용하여 기본 이벤트만 포함합니다.

stopNetLog

abstract fun stopNetLog(): Unit

NetLog 로깅을 중지하고 파일을 디스크에 플러시합니다. 로깅 세션이 진행 중이 아니면 이 호출은 무시됩니다.