CronetEngine.Builder

public class CronetEngine.Builder


CronetEngine 빌더로, CronetEngine의 런타임 구성을 허용합니다. 구성 옵션은 빌더에서 설정되고 build가 호출되어 CronetEngine를 만듭니다.

요약

중첩된 유형

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

상수

static final int

HTTP 캐시를 사용 중지하는 설정입니다.

static final int

HTTP 데이터를 포함한 디스크 캐시를 사용 설정하는 설정입니다.

static final int

HTTP 데이터를 제외한 디스크 내 캐시를 사용 설정하도록 설정합니다.

static final int

HTTP 데이터를 포함한 인메모리 HTTP 캐시를 사용 설정하는 설정입니다.

보호된 필드

JSONObject

실험 옵션의 JSON 표현입니다.

공개 생성자

Builder(Context context)

CronetEngine 생성을 용이하게 하는 Builder 객체를 구성합니다.

공개 메서드

CronetEngine.Builder
addPublicKeyPins(
    String hostName,
    Set<byte[]> pinsSha256,
    boolean includeSubdomains,
    Date expirationDate
)

지정된 호스트의 공개 키 세트를 고정합니다.

CronetEngine.Builder
addQuicHint(String host, int port, int alternatePort)

host가 QUIC를 지원한다는 힌트 추가

CronetEngine

이 빌더의 구성을 사용하여 CronetEngine을 빌드합니다.

CronetEngine.Builder
enableBrotli(boolean value)

Brotli 압축 사용 설정 여부를 설정합니다.

CronetEngine.Builder
enableHttp2(boolean value)

HTTP/2 프로토콜이 사용 설정되어 있는지 설정합니다.

CronetEngine.Builder
enableHttpCache(int cacheMode, long maxSize)

HTTP 데이터 및 QUIC 서버 정보와 같은 기타 정보의 캐싱을 사용 설정하거나 사용 중지합니다.

CronetEngine.Builder

네트워크 스택의 다양한 레이어에서 왕복 시간 (RTT)과 다운스트림 처리량의 측정을 수집하고 보고하는 네트워크 품질 추정기를 사용 설정합니다.

CronetEngine.Builder

로컬 트러스트 앵커의 공개 키 고정 우회를 사용 설정하거나 사용 중지합니다.

CronetEngine.Builder
enableQuic(boolean value)

QUIC 프로토콜이 사용 설정되어 있는지 설정합니다.

String

애플리케이션 이름과 버전, 시스템 빌드 버전, 모델과 ID, Cronet 버전을 포함하는 User-Agent 문자열을 생성합니다.

CronetEngine.Builder
CronetEngine.Builder

연결 이전의 동작을 구성합니다.

CronetEngine.Builder

호스트 이름 조회 동작을 구성합니다.

CronetEngine.Builder
CronetEngine.Builder

네이티브 라이브러리를 로드하는 데 사용될 LibraryLoader를 설정합니다.

CronetEngine.Builder

프록시 동작을 구성합니다.

CronetEngine.Builder
CronetEngine.Builder

QUIC 사용 시 Cronet의 동작을 구성합니다.

CronetEngine.Builder

HTTP 캐시 및 쿠키 저장소의 디렉터리를 설정합니다.

CronetEngine.Builder
setThreadPriority(int priority)

이 메서드는 지원 중단되었습니다.

최신 버전의 Cronet에서는 이 메서드가 아무것도 하지 않습니다.

CronetEngine.Builder
setUserAgent(String userAgent)

모든 요청의 User-Agent 헤더를 재정의합니다.

상수

HTTP_CACHE_DISABLED

public static final int HTTP_CACHE_DISABLED = 0

HTTP 캐시를 사용 중지하는 설정입니다. 일부 데이터는 메모리에 일시적으로 저장될 수 있습니다. enableHttpCache에 전달되었습니다.

HTTP_CACHE_DISK

public static final int HTTP_CACHE_DISK = 3

HTTP 데이터를 포함한 디스크 캐시를 사용 설정하는 설정입니다. 이 상수를 enableHttpCache에 전달하기 전에 setStoragePath를 호출해야 합니다.

HTTP_CACHE_DISK_NO_HTTP

public static final int HTTP_CACHE_DISK_NO_HTTP = 2

HTTP 데이터를 제외한 디스크 내 캐시를 사용 설정하도록 설정합니다. 이 상수를 enableHttpCache에 전달하기 전에 setStoragePath를 호출해야 합니다.

HTTP_CACHE_IN_MEMORY

public static final int HTTP_CACHE_IN_MEMORY = 1

HTTP 데이터를 포함한 인메모리 HTTP 캐시를 사용 설정하는 설정입니다. enableHttpCache에 전달되었습니다.

보호된 필드

mParsedExperimentalOptions

protected JSONObject mParsedExperimentalOptions

실험 옵션의 JSON 표현입니다.

공개 생성자

빌더

public Builder(Context context)

CronetEngine 생성을 용이하게 하는 Builder 객체를 구성합니다. 기본 구성에서는 HTTP/2와 QUIC가 사용 설정되지만 HTTP 캐시는 사용 중지됩니다.

매개변수
Context context

Builder에서 애플리케이션 컨텍스트를 가져오는 데 사용되는 Android Context context의 수명을 불필요하게 연장하지 않도록 애플리케이션 컨텍스트만 참조가 유지됩니다.

공개 메서드

addPublicKeyPins

public CronetEngine.Builder addPublicKeyPins(
    String hostName,
    Set<byte[]> pinsSha256,
    boolean includeSubdomains,
    Date expirationDate
)

지정된 호스트의 공개 키 세트를 고정합니다. 공개 키 세트 pinsSha256를 고정하면 고정된 세트의 공개 키가 있는 인증서로 인증하기 위해 hostName와의 통신이 필요합니다. 앱은 루트 인증서, 중간 인증서 또는 최종 항목 인증서의 공개 키를 고정할 수 있습니다. 호스트가 기기의 신뢰할 수 있는 인증서 저장소에서 허용하는 인증서로 인증을 시도하더라도 공개 키가 호스트의 인증서 체인에 없으면 인증이 실패하고 보안 통신이 설정되지 않습니다.

동일한 호스트 이름으로 이 메서드를 여러 번 호출하면 호스트에 대해 이전에 설정된 핀이 재정의됩니다.

공개 키 고정에 관한 자세한 내용은 RFC 7469를 참고하세요.

매개변수
String hostName

공개 키를 고정해야 하는 호스트의 이름입니다. 숫자와 점 문자로만 구성된 호스트는 잘못된 것으로 간주됩니다.

Set<byte[]> pinsSha256

핀 집합입니다. 각 핀은 호스트의 X.509 인증서의 주체 공개 키 정보 (SPKI)의 DER 인코딩 ASN.1 표현의 SHA-256 암호화 해시입니다. Certificate.getPublicKey()Key.getEncoded()를 사용하여 SPKI의 DER 인코딩 ASN.1 표현을 가져옵니다. 이 메서드는 기본 비공개 키의 제어가 손실된 경우 사용할 수 있는 백업 핀의 존재를 요구하지는 않지만 하나를 제공하는 것이 좋습니다.

boolean includeSubdomains

hostName의 하위 도메인에 고정 정책을 적용해야 하는지 여부를 나타냅니다.

Date expirationDate

핀의 만료일을 지정합니다.

반환
CronetEngine.Builder

빌더를 반환하여 연결을 용이하게 합니다.

생성 값
java.lang.NullPointerException

입력 매개변수 중 하나가 null인 경우

java.lang.IllegalArgumentException

지정된 호스트 이름이 유효하지 않거나 pinsSha256에 유효한 SHA-256 해시를 나타내지 않는 바이트 배열이 포함된 경우

addQuicHint

public CronetEngine.Builder addQuicHint(String host, int port, int alternatePort)

host가 QUIC를 지원한다는 힌트 추가 세션 간에 0-RTT 연결 설정을 활용하려면 enableHttpCache (HTTP_CACHE_DISK)가 필요합니다.

매개변수
String host

QUIC를 지원하는 서버의 호스트 이름입니다.

int port

QUIC를 지원하는 서버의 호스트입니다.

int alternatePort

QUIC에 사용할 대체 포트입니다.

반환
CronetEngine.Builder

빌더를 반환하여 연결을 용이하게 합니다.

build

public CronetEngine build()

이 빌더의 구성을 사용하여 CronetEngine을 빌드합니다.

반환
CronetEngine

CronetEngine를 구성했습니다.

enableBrotli

public CronetEngine.Builder enableBrotli(boolean value)

Brotli 압축 사용 설정 여부를 설정합니다. 사용 설정하면 Brotli가 Accept-Encoding 요청 헤더에 광고됩니다. 기본값은 사용 중지입니다.

매개변수
boolean value

true를 사용하여 Brotli를 사용 설정하고 false를 사용하여 사용 중지합니다.

반환
CronetEngine.Builder

빌더를 반환하여 연결을 용이하게 합니다.

enableHttp2

public CronetEngine.Builder enableHttp2(boolean value)

HTTP/2 프로토콜이 사용 설정되어 있는지 설정합니다. 기본값은 사용 설정입니다.

매개변수
boolean value

true: HTTP/2 사용 설정, false: 사용 중지

반환
CronetEngine.Builder

빌더를 반환하여 연결을 용이하게 합니다.

enableHttpCache

public CronetEngine.Builder enableHttpCache(int cacheMode, long maxSize)

HTTP 데이터 및 QUIC 서버 정보와 같은 기타 정보의 캐싱을 사용 설정하거나 사용 중지합니다.

매개변수
int cacheMode

캐시된 데이터의 위치와 유형을 제어할 수 있습니다. HTTP_CACHE_* 중 하나여야 합니다.

long maxSize

데이터를 캐시하는 데 사용되는 최대 크기(바이트)(권장되며 때때로 초과될 수 있음)입니다.

반환
CronetEngine.Builder

빌더를 반환하여 연결을 용이하게 합니다.

enableNetworkQualityEstimator

public CronetEngine.Builder enableNetworkQualityEstimator(boolean value)

네트워크 스택의 다양한 레이어에서 왕복 시간 (RTT)과 다운스트림 처리량의 측정을 수집하고 보고하는 네트워크 품질 추정기를 사용 설정합니다. 추정기를 사용 설정한 후 RTT 및 처리량 리스너를 addRttListeneraddThroughputListener로 추가하고 removeRttListenerremoveThroughputListener로 삭제할 수 있습니다. 추정기는 사용 설정된 경우에만 메모리와 CPU를 사용합니다.

매개변수
boolean value

true: 네트워크 품질 추정기 사용 설정, false: 사용 중지

반환
CronetEngine.Builder

빌더를 반환하여 연결을 용이하게 합니다.

enablePublicKeyPinningBypassForLocalTrustAnchors

public CronetEngine.Builder enablePublicKeyPinningBypassForLocalTrustAnchors(boolean value)

로컬 트러스트 앵커의 공개 키 고정 우회를 사용 설정하거나 사용 중지합니다. 로컬 트러스트 앵커의 우회를 사용 중지하면 앱이 고정된 호스트와 통신하지 못할 수 있으므로 사용 중지하지 않는 것이 좋습니다. 예를 들어 사용자는 기기 프록시 설정을 변경하고 프록시 인증서를 로컬 신뢰 앵커 목록에 추가하여 SSL 지원 프록시를 통해 모든 트래픽을 전송할 수 있습니다. 우회 기능을 사용 중지하면 앱이 고정된 호스트로 트래픽을 전송하지 못할 가능성이 높습니다. 자세한 내용은 https://www.chromium.org/Home/chromium-security/security-faq의 '키 고정이 로컬 프록시 및 필터와 상호작용하는 방식'을 참고하세요.

매개변수
boolean value

true를 눌러 우회 사용 설정, false를 눌러 사용 중지

반환
CronetEngine.Builder

빌더를 반환하여 연결을 용이하게 합니다.

enableQuic

public CronetEngine.Builder enableQuic(boolean value)

QUIC 프로토콜이 사용 설정되어 있는지 설정합니다. 기본값은 사용 설정입니다. QUIC가 사용 설정된 경우 애플리케이션 이름과 Cronet 버전이 포함된 QUIC 사용자 에이전트 ID가 서버로 전송됩니다.

매개변수
boolean value

true를 사용하여 QUIC을 사용 설정하고 false를 사용하여 사용 중지합니다.

반환
CronetEngine.Builder

빌더를 반환하여 연결을 용이하게 합니다.

getDefaultUserAgent

public String getDefaultUserAgent()

애플리케이션 이름과 버전, 시스템 빌드 버전, 모델과 ID, Cronet 버전을 포함하는 User-Agent 문자열을 생성합니다.

반환
String

사용자 에이전트 문자열입니다.

setConnectionMigrationOptions

@ConnectionMigrationOptions.Experimental
public CronetEngine.Builder setConnectionMigrationOptions(
    ConnectionMigrationOptions.Builder connectionMigrationOptionsBuilder
)

setConnectionMigrationOptions

@ConnectionMigrationOptions.Experimental
public CronetEngine.Builder setConnectionMigrationOptions(
    ConnectionMigrationOptions connectionMigrationOptions
)

연결 이전의 동작을 구성합니다. 자세한 내용은 ConnectionMigrationOptionsConnectionMigrationOptions.Builder의 개별 메서드 문서를 참고하세요.

enableQuic이 사용 설정된 경우에만 관련이 있습니다.

반환
CronetEngine.Builder

빌더를 반환하여 연결을 용이하게 합니다.

setDnsOptions

@DnsOptions.Experimental
public CronetEngine.Builder setDnsOptions(DnsOptions dnsOptions)

호스트 이름 조회 동작을 구성합니다. 자세한 내용은 DnsOptionsDnsOptions.Builder의 개별 메서드 문서를 참고하세요.

enableQuic이 사용 설정된 경우에만 관련이 있습니다.

반환
CronetEngine.Builder

빌더를 반환하여 연결을 용이하게 합니다.

setLibraryLoader

public CronetEngine.Builder setLibraryLoader(CronetEngine.Builder.LibraryLoader loader)

네이티브 라이브러리를 로드하는 데 사용될 LibraryLoader를 설정합니다. 설정하지 않으면 라이브러리가 loadLibrary을 사용하여 로드됩니다.

매개변수
CronetEngine.Builder.LibraryLoader loader

네이티브 라이브러리를 로드하는 데 사용되는 LibraryLoader

반환
CronetEngine.Builder

빌더를 반환하여 연결을 용이하게 합니다.

setProxyOptions

public CronetEngine.Builder setProxyOptions(@NonNull ProxyOptions proxyOptions)

프록시 동작을 구성합니다. 이는 연결 설정, UrlRequest, BidirectionalStream에 다양한 방식으로 영향을 미칩니다. 자세한 내용은 Proxy 문서를 참고하세요.

이는 사용자 또는 일부 엔터프라이즈 프로필 구성, (가장 가능성이 높은) 일부 네트워크 자동 구성 (예: 웹 프록시 자동 검색 프로토콜)에 의해 설정된 프록시 구성과 혼동해서는 안 됩니다. 이를 보통 '시스템' 프록시 구성이라고 합니다. 있는 경우 시스템 프록시 구성을 준수하는 것이 로컬 및/또는 인터넷 연결을 얻기 위한 요구사항인 경우가 많습니다. CronetEngine은 이미 내부적으로 시스템 프록시 구성을 처리합니다.

이 API를 통해 정의된 프록시 구성은 '앱' 프록시 구성이라고 합니다. 앱 및 시스템 프록시 구성은 별개이며 가장 중요한 점은 서로 다르다는 것입니다. 현재 앱 및 시스템 프록시 구성은 상호 배타적입니다. ProxyOptions를 지정하면 시스템 프록시 구성이 있는 경우 이를 재정의합니다. 이로 인해 시스템 프록시 구성이 있는 일부 시나리오에서 연결 문제가 발생할 수 있습니다. 이러한 시나리오에서 ProxyOptions가 최종 null 대체로 구성되지 않은 경우 사용자는 인터넷에 액세스할 수 없게 될 수 있습니다. ProxyOptions 문서를 참고하세요.

매개변수
@NonNull ProxyOptions proxyOptions

UrlRequest, BiridirectionalStream, 이 빌더로 생성된 CronetEngine에 의해 설정된 연결에 사용될 ProxyOptions입니다.

반환
CronetEngine.Builder

빌더를 반환하여 연결을 용이하게 합니다.

생성 값
java.lang.UnsupportedOperationException

사용 중인 Cronet 구현이 너무 오래되어 ProxyOptions를 지원하지 않는 경우

setQuicOptions

@QuicOptions.Experimental
public CronetEngine.Builder setQuicOptions(QuicOptions.Builder quicOptionsBuilder)
참고 항목
setQuicOptions

setQuicOptions

@QuicOptions.Experimental
public CronetEngine.Builder setQuicOptions(QuicOptions quicOptions)

QUIC 사용 시 Cronet의 동작을 구성합니다. 자세한 내용은 QuicOptionsQuicOptions.Builder의 개별 메서드 문서를 참고하세요.

enableQuic이 사용 설정된 경우에만 관련이 있습니다.

반환
CronetEngine.Builder

빌더를 반환하여 연결을 용이하게 합니다.

setStoragePath

public CronetEngine.Builder setStoragePath(String value)

HTTP 캐시 및 쿠키 저장소의 디렉터리를 설정합니다. 디렉터리가 있어야 합니다.

참고: 한 번에 두 개 이상의 CronetEngine와 동일한 저장소 디렉터리를 사용하지 마세요. 스토리지 디렉터리 액세스는 여러 CronetEngine의 동시 액세스를 지원하지 않습니다.

매개변수
String value

기존 디렉터리의 경로입니다.

반환
CronetEngine.Builder

빌더를 반환하여 연결을 용이하게 합니다.

setThreadPriority

public CronetEngine.Builder setThreadPriority(int priority)

Cronet의 내부 스레드의 스레드 우선순위를 설정합니다.

매개변수
int priority

Cronet 내부 스레드의 스레드 우선순위입니다. 가장 높은 일정 우선순위의 -20부터 가장 낮은 일정 우선순위의 19까지의 Linux 우선순위 수준입니다. 값에 대한 자세한 내용은 setThreadPriorityTHREAD_PRIORITY_* 값을 참고하세요.

반환
CronetEngine.Builder

빌더를 반환하여 연결을 용이하게 합니다.

setUserAgent

public CronetEngine.Builder setUserAgent(String userAgent)

모든 요청의 User-Agent 헤더를 재정의합니다. 명시적으로 설정된 User-Agent 헤더 (addHeader를 사용하여 설정)는 이 함수를 사용하여 설정된 값을 재정의합니다.

매개변수
String userAgent

모든 요청에 사용할 사용자 에이전트 문자열입니다.

반환
CronetEngine.Builder

빌더를 반환하여 연결을 용이하게 합니다.