CronetEngine.Builder

public class CronetEngine.Builder


Trình tạo cho CronetEngine, cho phép định cấu hình CronetEngine trong thời gian chạy. Các lựa chọn cấu hình được đặt trên trình tạo, sau đó build được gọi để tạo CronetEngine.

Tóm tắt

Các loại lồng nhau

Một lớp cung cấp phương thức tải thư viện gốc cronet.

Hằng số

static final int

Chế độ cài đặt để tắt bộ nhớ đệm HTTP.

static final int

Chế độ cài đặt để bật bộ nhớ đệm trên ổ đĩa, bao gồm cả dữ liệu HTTP.

static final int

Chế độ cài đặt để bật bộ nhớ đệm trên đĩa, không bao gồm dữ liệu HTTP.

static final int

Chế độ cài đặt để bật bộ nhớ đệm HTTP trong bộ nhớ, bao gồm cả dữ liệu HTTP.

Trường được bảo vệ

JSONObject

Biểu diễn dưới dạng JSON của các lựa chọn thử nghiệm.

Hàm khởi tạo công khai

Builder(Context context)

Tạo một đối tượng Builder giúp tạo CronetEngine.

Phương thức công khai

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

Ghim một bộ khoá công khai cho một máy chủ lưu trữ nhất định.

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

Thêm gợi ý rằng host hỗ trợ QUIC.

CronetEngine

Tạo một CronetEngine bằng cấu hình của trình tạo này.

CronetEngine.Builder
enableBrotli(boolean value)

Đặt xem có bật tính năng nén Brotli hay không.

CronetEngine.Builder
enableHttp2(boolean value)

Đặt xem giao thức HTTP/2 có được bật hay không.

CronetEngine.Builder
enableHttpCache(int cacheMode, long maxSize)

Bật hoặc tắt tính năng lưu dữ liệu HTTP và các thông tin khác vào bộ nhớ đệm, chẳng hạn như thông tin về máy chủ QUIC.

CronetEngine.Builder

Cho phép trình ước tính chất lượng mạng, thu thập và báo cáo các phép đo thời gian khứ hồi (RTT) và thông lượng tải xuống ở nhiều lớp của ngăn xếp mạng.

CronetEngine.Builder

Bật hoặc tắt tính năng bỏ qua việc ghim khoá công khai cho neo tin cậy cục bộ.

CronetEngine.Builder
enableQuic(boolean value)

Đặt xem giao thức QUIC có được bật hay không.

String

Tạo một chuỗi User-Agent bao gồm tên và phiên bản ứng dụng, phiên bản bản dựng hệ thống, mô hình và mã nhận dạng, cũng như phiên bản Cronet.

CronetEngine.Builder
CronetEngine.Builder

Định cấu hình hành vi di chuyển kết nối.

CronetEngine.Builder

Định cấu hình hành vi tra cứu tên máy chủ.

CronetEngine.Builder
CronetEngine.Builder

Đặt một LibraryLoader để dùng tải thư viện gốc.

CronetEngine.Builder

Định cấu hình hành vi uỷ quyền.

CronetEngine.Builder
CronetEngine.Builder

Thiết lập hành vi của Cronet khi sử dụng QUIC.

CronetEngine.Builder

Đặt thư mục cho Bộ nhớ đệm HTTP và Bộ nhớ cookie.

CronetEngine.Builder
setThreadPriority(int priority)

Phương thức này không được dùng nữa.

Trên các phiên bản Cronet hiện đại, phương thức này không làm gì cả.

CronetEngine.Builder
setUserAgent(String userAgent)

Ghi đè tiêu đề User-Agent cho tất cả các yêu cầu.

Hằng số

HTTP_CACHE_DISABLED

public static final int HTTP_CACHE_DISABLED = 0

Chế độ cài đặt để tắt bộ nhớ đệm HTTP. Một số dữ liệu vẫn có thể được lưu trữ tạm thời trong bộ nhớ. Đã chuyển đến enableHttpCache.

HTTP_CACHE_DISK

public static final int HTTP_CACHE_DISK = 3

Chế độ cài đặt để bật bộ nhớ đệm trên ổ đĩa, bao gồm cả dữ liệu HTTP. Bạn phải gọi setStoragePath trước khi truyền hằng số này đến enableHttpCache.

HTTP_CACHE_DISK_NO_HTTP

public static final int HTTP_CACHE_DISK_NO_HTTP = 2

Chế độ cài đặt để bật bộ nhớ đệm trên đĩa, không bao gồm dữ liệu HTTP. Bạn phải gọi setStoragePath trước khi truyền hằng số này đến enableHttpCache.

HTTP_CACHE_IN_MEMORY

public static final int HTTP_CACHE_IN_MEMORY = 1

Chế độ cài đặt để bật bộ nhớ đệm HTTP trong bộ nhớ, bao gồm cả dữ liệu HTTP. Đã chuyển đến enableHttpCache.

Trường được bảo vệ

mParsedExperimentalOptions

protected JSONObject mParsedExperimentalOptions

Biểu diễn dưới dạng JSON của các lựa chọn thử nghiệm.

Hàm khởi tạo công khai

Trình tạo

public Builder(Context context)

Tạo một đối tượng Builder giúp tạo CronetEngine. Cấu hình mặc định sẽ bật HTTP/2 và QUIC, nhưng vô hiệu hoá bộ nhớ đệm HTTP.

Tham số
Context context

Context Android, được Builder dùng để truy xuất ngữ cảnh ứng dụng. Hệ thống sẽ chỉ giữ lại một tham chiếu đến ngữ cảnh ứng dụng để tránh kéo dài vòng đời của context một cách không cần thiết.

Phương thức công khai

addPublicKeyPins

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

Ghim một bộ khoá công khai cho một máy chủ lưu trữ nhất định. Bằng cách ghim một nhóm khoá công khai pinsSha256, bạn cần giao tiếp với hostName để xác thực bằng một chứng chỉ có khoá công khai trong nhóm khoá đã ghim. Ứng dụng có thể ghim khoá công khai của chứng chỉ gốc, bất kỳ chứng chỉ trung gian nào hoặc chứng chỉ mục nhập cuối. Quá trình xác thực sẽ thất bại và không thiết lập được thông tin liên lạc bảo mật nếu không có khoá công khai nào trong chuỗi chứng chỉ của máy chủ, ngay cả khi máy chủ cố gắng xác thực bằng một chứng chỉ được cửa hàng chứng chỉ đáng tin cậy của thiết bị cho phép.

Việc gọi phương thức này nhiều lần bằng cùng một tên máy chủ lưu trữ sẽ ghi đè các ghim đã đặt trước đó cho máy chủ lưu trữ.

Bạn có thể tìm thêm thông tin về việc ghim khoá công khai trong RFC 7469.

Tham số
String hostName

tên của máy chủ mà các khoá công khai sẽ được ghim. Máy chủ chỉ chứa các chữ số và ký tự dấu chấm được coi là không hợp lệ.

Set<byte[]> pinsSha256

một nhóm ghim. Mỗi ghim là hàm băm mật mã SHA-256 của biểu thị ASN.1 được mã hoá DER của Thông tin khoá công khai của chủ thể (SPKI) trong chứng chỉ X.509 của máy chủ lưu trữ. Sử dụng Certificate.getPublicKey()Key.getEncoded() để lấy biểu thị ASN.1 được mã hoá DER của SPKI. Mặc dù phương thức này không bắt buộc phải có mã PIN dự phòng (có thể dùng nếu bạn mất quyền kiểm soát khoá riêng tư chính), nhưng bạn nên cung cấp mã PIN dự phòng.

boolean includeSubdomains

cho biết liệu chính sách ghim có nên được áp dụng cho các miền con của hostName hay không.

Date expirationDate

chỉ định ngày hết hạn cho các ghim.

Giá trị trả về
CronetEngine.Builder

trình tạo để tạo điều kiện cho việc liên kết.

Gửi
java.lang.NullPointerException

nếu có bất kỳ tham số đầu vào nào là null.

java.lang.IllegalArgumentException

nếu tên máy chủ đã cho không hợp lệ hoặc pinsSha256 chứa một mảng byte không biểu thị giá trị băm SHA-256 hợp lệ.

addQuicHint

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

Thêm gợi ý rằng host hỗ trợ QUIC. Xin lưu ý rằng bạn cần có enableHttpCache (HTTP_CACHE_DISK) để tận dụng khả năng thiết lập kết nối 0-RTT giữa các phiên.

Tham số
String host

tên máy chủ của máy chủ hỗ trợ QUIC.

int port

máy chủ lưu trữ của máy chủ hỗ trợ QUIC.

int alternatePort

cổng thay thế để sử dụng cho QUIC.

Giá trị trả về
CronetEngine.Builder

trình tạo để tạo điều kiện cho việc liên kết.

build

public CronetEngine build()

Tạo một CronetEngine bằng cấu hình của trình tạo này.

Giá trị trả về
CronetEngine

được xây dựng vào năm CronetEngine.

enableBrotli

public CronetEngine.Builder enableBrotli(boolean value)

Đặt xem có bật tính năng nén Brotli hay không. Nếu được bật, Brotli sẽ được quảng cáo trong tiêu đề yêu cầu Accept-Encoding. Mặc định là tắt.

Tham số
boolean value

true để bật Brotli, false để tắt.

Giá trị trả về
CronetEngine.Builder

trình tạo để tạo điều kiện cho việc liên kết.

enableHttp2

public CronetEngine.Builder enableHttp2(boolean value)

Đặt xem giao thức HTTP/2 có được bật hay không. Theo mặc định, tính năng này sẽ được bật.

Tham số
boolean value

true để bật HTTP/2, false để tắt.

Giá trị trả về
CronetEngine.Builder

trình tạo để tạo điều kiện cho việc liên kết.

enableHttpCache

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

Bật hoặc tắt tính năng lưu dữ liệu HTTP và các thông tin khác vào bộ nhớ đệm, chẳng hạn như thông tin về máy chủ QUIC.

Tham số
int cacheMode

kiểm soát vị trí và loại dữ liệu được lưu vào bộ nhớ đệm. Phải là một trong HTTP_CACHE_*.

long maxSize

kích thước tối đa tính bằng byte được dùng để lưu dữ liệu vào bộ nhớ đệm (mang tính khuyến nghị và đôi khi có thể vượt quá).

Giá trị trả về
CronetEngine.Builder

trình tạo để tạo điều kiện cho việc liên kết.

enableNetworkQualityEstimator

public CronetEngine.Builder enableNetworkQualityEstimator(boolean value)

Cho phép trình ước tính chất lượng mạng, thu thập và báo cáo các phép đo thời gian khứ hồi (RTT) và thông lượng tải xuống ở nhiều lớp của ngăn xếp mạng. Sau khi bật công cụ ước tính, bạn có thể thêm trình nghe RTT và công suất bằng addRttListeneraddThroughputListener, đồng thời xoá bằng removeRttListenerremoveThroughputListener. Công cụ ước tính chỉ sử dụng bộ nhớ và CPU khi được bật.

Tham số
boolean value

true để bật công cụ ước tính chất lượng mạng, false để tắt.

Giá trị trả về
CronetEngine.Builder

trình tạo để tạo điều kiện cho việc liên kết.

enablePublicKeyPinningBypassForLocalTrustAnchors

public CronetEngine.Builder enablePublicKeyPinningBypassForLocalTrustAnchors(boolean value)

Bật hoặc tắt tính năng bỏ qua việc ghim khoá công khai cho neo tin cậy cục bộ. Bạn không nên tắt chế độ bỏ qua đối với các neo tin cậy cục bộ vì việc này có thể ngăn ứng dụng giao tiếp với các máy chủ được ghim. Ví dụ: người dùng có thể muốn gửi tất cả lưu lượng truy cập thông qua một proxy có hỗ trợ SSL bằng cách thay đổi chế độ cài đặt proxy của thiết bị và thêm chứng chỉ proxy vào danh sách neo tin cậy cục bộ. Việc tắt chế độ bỏ qua có thể sẽ ngăn ứng dụng gửi lưu lượng truy cập đến các máy chủ được ghim. Để biết thêm thông tin, hãy xem phần "How does key pinning interact with local proxies and filters?" (Cách ghim khoá tương tác với các bộ lọc và proxy cục bộ) tại https://www.chromium.org/Home/chromium-security/security-faq

Tham số
boolean value

true để bật chế độ bỏ qua, false để tắt.

Giá trị trả về
CronetEngine.Builder

trình tạo để tạo điều kiện cho việc liên kết.

enableQuic

public CronetEngine.Builder enableQuic(boolean value)

Đặt xem giao thức QUIC có được bật hay không. Theo mặc định, tính năng này sẽ được bật. Nếu QUIC được bật, thì mã nhận dạng tác nhân người dùng QUIC chứa tên ứng dụng và phiên bản Cronet sẽ được gửi đến máy chủ.

Tham số
boolean value

true để bật QUIC, false để tắt.

Giá trị trả về
CronetEngine.Builder

trình tạo để tạo điều kiện cho việc liên kết.

getDefaultUserAgent

public String getDefaultUserAgent()

Tạo một chuỗi User-Agent bao gồm tên và phiên bản ứng dụng, phiên bản bản dựng hệ thống, mô hình và mã nhận dạng, cũng như phiên bản Cronet.

Giá trị trả về
String

Chuỗi tác nhân người dùng.

setConnectionMigrationOptions

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

Định cấu hình hành vi di chuyển kết nối. Để biết thêm thông tin chi tiết, hãy xem tài liệu về ConnectionMigrationOptions và các phương thức riêng lẻ của ConnectionMigrationOptions.Builder.

Chỉ phù hợp nếu bạn bật enableQuic.

Giá trị trả về
CronetEngine.Builder

trình tạo để tạo điều kiện cho việc liên kết.

setDnsOptions

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

Định cấu hình hành vi tra cứu tên máy chủ. Để biết thêm thông tin chi tiết, hãy xem tài liệu về DnsOptions và các phương thức riêng lẻ của DnsOptions.Builder.

Chỉ phù hợp nếu bạn bật enableQuic.

Giá trị trả về
CronetEngine.Builder

trình tạo để tạo điều kiện cho việc liên kết.

setLibraryLoader

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

Đặt một LibraryLoader để dùng tải thư viện gốc. Nếu bạn không đặt chính sách này, thư viện sẽ được tải bằng loadLibrary.

Tham số
CronetEngine.Builder.LibraryLoader loader

LibraryLoader sẽ được dùng để tải thư viện gốc.

Giá trị trả về
CronetEngine.Builder

trình tạo để tạo điều kiện cho việc liên kết.

setProxyOptions

public CronetEngine.Builder setProxyOptions(@NonNull ProxyOptions proxyOptions)

Định cấu hình hành vi uỷ quyền. Điều này ảnh hưởng theo nhiều cách: thiết lập kết nối, UrlRequestBidirectionalStream. Để biết thêm thông tin chi tiết, hãy tham khảo tài liệu về Proxy.

Bạn không nên nhầm lẫn chế độ này với cấu hình proxy do người dùng thiết lập; hoặc một số cấu hình hồ sơ doanh nghiệp, hoặc (rất có thể) một số cấu hình tự động của mạng (ví dụ: Giao thức tự động phát hiện proxy web). Điều này thường được gọi là cấu hình proxy "hệ thống". Nếu có, việc tuân thủ cấu hình proxy hệ thống thường là một yêu cầu để có được kết nối cục bộ và/hoặc kết nối Internet. CronetEngine đã xử lý cấu hình proxy hệ thống nội bộ.

Cấu hình proxy được xác định thông qua API này được gọi là cấu hình proxy "ứng dụng". Cấu hình proxy ứng dụng và hệ thống là riêng biệt và quan trọng nhất là khác nhau. Hiện tại, cấu hình proxy của ứng dụng và hệ thống là loại trừ lẫn nhau: việc chỉ định ProxyOptions sẽ ghi đè cấu hình proxy của hệ thống (nếu có). Điều này có thể gây ra vấn đề về kết nối trong một số trường hợp có cấu hình proxy hệ thống. Trong những trường hợp như vậy, người dùng có thể không truy cập được vào Internet, trừ phi ProxyOptions được định cấu hình với một null dự phòng cuối cùng. Tham khảo tài liệu ProxyOptions.

Tham số
@NonNull ProxyOptions proxyOptions

ProxyOptions sẽ được dùng cho UrlRequest, BiridirectionalStream và các kết nối do CronetEngine tạo bằng trình tạo này thiết lập.

Giá trị trả về
CronetEngine.Builder

trình tạo để tạo điều kiện cho việc liên kết.

Gửi
java.lang.UnsupportedOperationException

nếu việc triển khai Cronet đang được sử dụng quá cũ để hỗ trợ ProxyOptions.

setQuicOptions

@QuicOptions.Experimental
public CronetEngine.Builder setQuicOptions(QuicOptions.Builder quicOptionsBuilder)
Xem thêm
setQuicOptions

setQuicOptions

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

Thiết lập hành vi của Cronet khi sử dụng QUIC. Để biết thêm thông tin chi tiết, hãy xem tài liệu về QuicOptions và các phương thức riêng lẻ của QuicOptions.Builder.

Chỉ phù hợp nếu bạn bật enableQuic.

Giá trị trả về
CronetEngine.Builder

trình tạo để tạo điều kiện cho việc liên kết.

setStoragePath

public CronetEngine.Builder setStoragePath(String value)

Đặt thư mục cho Bộ nhớ đệm HTTP và Bộ nhớ cookie. Thư mục phải tồn tại.

LƯU Ý: Không sử dụng cùng một thư mục lưu trữ với nhiều CronetEngine cùng một lúc. Quyền truy cập vào thư mục lưu trữ không hỗ trợ nhiều CronetEngine truy cập đồng thời.

Tham số
String value

đường dẫn đến thư mục hiện có.

Giá trị trả về
CronetEngine.Builder

trình tạo để tạo điều kiện cho việc liên kết.

setThreadPriority

public CronetEngine.Builder setThreadPriority(int priority)

Đặt mức độ ưu tiên của luồng cho luồng nội bộ của Cronet.

Tham số
int priority

mức độ ưu tiên của luồng nội bộ của Cronet. Mức độ ưu tiên của Linux, từ -20 cho mức độ ưu tiên lập lịch cao nhất đến 19 cho mức độ ưu tiên lập lịch thấp nhất. Để biết thêm thông tin về các giá trị, hãy xem các giá trị setThreadPriorityTHREAD_PRIORITY_*.

Giá trị trả về
CronetEngine.Builder

trình tạo để tạo điều kiện cho việc liên kết.

setUserAgent

public CronetEngine.Builder setUserAgent(String userAgent)

Ghi đè tiêu đề User-Agent cho tất cả các yêu cầu. Tiêu đề User-Agent được đặt rõ ràng (được đặt bằng addHeader) sẽ ghi đè giá trị được đặt bằng hàm này.

Tham số
String userAgent

chuỗi User-Agent để sử dụng cho tất cả các yêu cầu.

Giá trị trả về
CronetEngine.Builder

trình tạo để tạo điều kiện cho việc liên kết.