CronetEngine

abstract class CronetEngine

Các lớp con trực tiếp đã biết
Các lớp con gián tiếp đã biết
JavaCronetEngine

java.net.HttpURLConnection CronetEngine được sao lưu.


Một công cụ để xử lý UrlRequest, sử dụng ngăn xếp HTTP tốt nhất có trên nền tảng hiện tại. Bạn có thể tạo một phiên bản của lớp này bằng cách sử dụng Builder.

Tóm tắt

Các loại lồng nhau

Trình tạo cho CronetEngine, cho phép định cấu hình CronetEngine trong thời gian chạy.

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

Hằng số

const Int

Không xác định được giá trị của số lượng yêu cầu đang hoạt động

const Int

Không xác định được giá trị của một chỉ số kết nối.

const Int

Loại kết nối hiệu quả ước tính là 2G.

const Int

Loại kết nối ước tính có hiệu quả là 3G.

const Int

Loại kết nối ước tính có hiệu quả là 4G.

const Int

Thiết bị không có kết nối mạng.

const Int

Loại kết nối hiệu quả ước tính là 2G chậm.

const Int

Không xác định được thông tin ước tính về loại kết nối hiệu quả.

const Long

Giá trị dùng để huỷ mọi hoạt động liên kết mạng trước đó.

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

Hàm công khai

Unit

Đăng ký một trình nghe được gọi sau khi kết thúc mỗi yêu cầu cùng với thông tin yêu cầu.

Unit

Đăng ký một trình nghe được gọi bất cứ khi nào công cụ ước tính chất lượng mạng ghi nhận được thời gian khứ hồi mẫu.

Unit

Đăng ký một trình nghe được gọi bất cứ khi nào công cụ ước tính chất lượng mạng ghi nhận một phép đo thông lượng mẫu.

Unit
bindToNetwork(networkHandle: Long)

Liên kết công cụ với tay cầm mạng được chỉ định.

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

Định cấu hình trình ước tính chất lượng mạng để kiểm thử.

abstract URLStreamHandlerFactory!

Tạo một URLStreamHandlerFactory để xử lý lưu lượng truy cập HTTP và HTTPS.

Int

Trả về số lượng yêu cầu đang hoạt động.

Int

Trả về ước tính về thông lượng truyền xuôi (tính bằng kilobit trên giây) do trình ước tính chất lượng mạng tính toán.

Int

Trả về giá trị ước tính về loại kết nối hiệu quả do trình ước tính chất lượng mạng tính toán.

abstract ByteArray<Byte>!

Hàm này không còn được dùng nữa.

Trong các phiên bản Cronet hiện đại, phương thức này sẽ luôn trả về một mảng trống.

Int

Trả về giá trị ước tính RTT HTTP (tính bằng mili giây) do công cụ ước tính chất lượng mạng tính toán.

Int

Trả về ước tính RTT của hoạt động truyền tải (tính bằng mili giây) do công cụ ước tính chất lượng mạng tính toán.

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

Tạo trình tạo cho UrlRequest.

abstract URLConnection!

Thiết lập một kết nối mới đến tài nguyên do URLurl chỉ định.

Unit

Xoá một trình nghe yêu cầu đã hoàn tất.

Unit

Xoá một trình nghe thời gian khứ hồi nếu trước đó đã đăng ký bằng addRttListener.

Unit

Xoá một trình nghe thông lượng.

abstract Unit

Tắt CronetEngine nếu không có yêu cầu nào đang hoạt động, nếu không thì sẽ gửi một ngoại lệ.

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

Bắt đầu ghi nhật ký NetLog vào một thư mục được chỉ định với kích thước giới hạn.

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

Bắt đầu ghi nhật ký NetLog vào một tệp.

abstract Unit

Dừng ghi nhật ký NetLog và xoá tệp vào ổ đĩa.

Hằng số

ACTIVE_REQUEST_COUNT_UNKNOWN

const val ACTIVE_REQUEST_COUNT_UNKNOWN = -1: Int

Không xác định được giá trị của số lượng yêu cầu đang hoạt động

CONNECTION_METRIC_UNKNOWN

const val CONNECTION_METRIC_UNKNOWN = -1: Int

Không xác định được giá trị của một chỉ số kết nối.

EFFECTIVE_CONNECTION_TYPE_2G

const val EFFECTIVE_CONNECTION_TYPE_2G = 3: Int

Loại kết nối hiệu quả ước tính là 2G.

EFFECTIVE_CONNECTION_TYPE_3G

const val EFFECTIVE_CONNECTION_TYPE_3G = 4: Int

Loại kết nối ước tính có hiệu quả là 3G.

EFFECTIVE_CONNECTION_TYPE_4G

const val EFFECTIVE_CONNECTION_TYPE_4G = 5: Int

Loại kết nối ước tính có hiệu quả là 4G.

EFFECTIVE_CONNECTION_TYPE_OFFLINE

const val EFFECTIVE_CONNECTION_TYPE_OFFLINE = 1: Int

Thiết bị không có kết nối mạng.

EFFECTIVE_CONNECTION_TYPE_SLOW_2G

const val EFFECTIVE_CONNECTION_TYPE_SLOW_2G = 2: Int

Loại kết nối hiệu quả ước tính là 2G chậm.

EFFECTIVE_CONNECTION_TYPE_UNKNOWN

const val EFFECTIVE_CONNECTION_TYPE_UNKNOWN = 0: Int

Không xác định được thông tin ước tính về loại kết nối hiệu quả.

UNBIND_NETWORK_HANDLE

const val UNBIND_NETWORK_HANDLE = -1: Long

Giá trị dùng để huỷ mọi hoạt động liên kết mạng trước đó.

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

CronetEngine

CronetEngine()

Hàm công khai

addRequestFinishedListener

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

Đăng ký một trình nghe được gọi sau khi kết thúc mỗi yêu cầu cùng với thông tin yêu cầu.

Trình nghe này được gọi trên một java.util.concurrent.Executor do trình nghe cung cấp.

Tham số
listener: RequestFinishedInfo.Listener!

trình nghe cho các yêu cầu đã hoàn tất.

addRttListener

fun addRttListener(listener: NetworkQualityRttListener!): Unit

Đăng ký một trình nghe được gọi bất cứ khi nào công cụ ước tính chất lượng mạng ghi nhận được thời gian khứ hồi mẫu. Bạn phải gọi phương thức này sau enableNetworkQualityEstimator, nếu không phương thức này sẽ khai báo một ngoại lệ. Thời gian khứ hồi có thể được ghi lại ở nhiều lớp của ngăn xếp mạng, bao gồm TCP, QUIC và ở lớp yêu cầu URL. Trình nghe được gọi trên java.util.concurrent.Executor được truyền đến enableNetworkQualityEstimator.

Tham số
listener: NetworkQualityRttListener!

trình nghe thời gian khứ hồi.

addThroughputListener

fun addThroughputListener(listener: NetworkQualityThroughputListener!): Unit

Đăng ký một trình nghe được gọi bất cứ khi nào công cụ ước tính chất lượng mạng ghi nhận một phép đo thông lượng mẫu. Bạn phải gọi phương thức này sau enableNetworkQualityEstimator. Thông tin quan sát về tốc độ truyền dữ liệu được tính bằng cách đo số byte được đọc qua giao diện mạng đang hoạt động tại thời điểm nhận được ít nhất một phản hồi URL. Trình nghe được gọi trên java.util.concurrent.Executor được truyền đến enableNetworkQualityEstimator.

Tham số
listener: NetworkQualityThroughputListener!

trình nghe thông lượng.

bindToNetwork

fun bindToNetwork(networkHandle: Long): Unit

Liên kết công cụ với tay cầm mạng được chỉ định. Tất cả các yêu cầu được tạo thông qua công cụ này sẽ sử dụng mạng được liên kết với mã nhận dạng này. Nếu mạng này ngắt kết nối, tất cả các yêu cầu sẽ không thành công. Lỗi chính xác sẽ phụ thuộc vào giai đoạn xử lý yêu cầu khi mạng ngắt kết nối. Bạn có thể lấy các mã nhận dạng mạng thông qua Network#getNetworkHandle. Chỉ có từ Android Marshmallow trở lên.

Tham số
networkHandle: Long

xử lý mạng để liên kết công cụ. Chỉ định UNBIND_NETWORK_HANDLE để huỷ liên kết.

configureNetworkQualityEstimatorForTesting

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

Định cấu hình trình ước tính chất lượng mạng để kiểm thử. Bạn phải gọi phương thức này trước khi thêm trình nghe thời gian khứ hồi và thông lượng, đồng thời sau khi bật trình ước tính chất lượng mạng.

Tham số
useLocalHostRequests: Boolean

bao gồm các yêu cầu đến localhost trong thông tin ước tính.

useSmallerResponses: Boolean

bao gồm các phản hồi nhỏ trong ước tính thông lượng.

disableOfflineCheck: Boolean

khi được đặt thành true, sẽ vô hiệu hoá các lần kiểm tra thiết bị khi không có mạng khi tính toán loại kết nối hiệu quả hoặc khi ghi các lựa chọn ưu tiên.

createURLStreamHandlerFactory

abstract fun createURLStreamHandlerFactory(): URLStreamHandlerFactory!

Tạo một URLStreamHandlerFactory để xử lý lưu lượng truy cập HTTP và HTTPS. Bạn có thể cài đặt một phiên bản của lớp này thông qua setURLStreamHandlerFactory, do đó, theo mặc định, bạn có thể sử dụng CronetEngine này cho tất cả các yêu cầu được tạo thông qua openConnection.

Cronet không sử dụng một số tính năng HTTP do hệ thống cung cấp:

Mặc dù Cronet hỗ trợ và khuyến khích các yêu cầu sử dụng giao thức HTTPS, nhưng Cronet không hỗ trợ API HttpsURLConnection. Việc thiếu hỗ trợ này cũng bao gồm việc không sử dụng một số tính năng HTTPS do hệ thống cung cấp:

Giá trị trả về
URLStreamHandlerFactory!

một thực thể URLStreamHandlerFactory do CronetEngine này triển khai.

getActiveRequestCount

fun getActiveRequestCount(): Int

Trả về số lượng yêu cầu đang hoạt động.

Một yêu cầu sẽ chuyển sang trạng thái "đang hoạt động" trong UrlRequest.start(), giả sử phương thức đó không gây ra một ngoại lệ. Thao tác này sẽ không hoạt động khi tất cả các lệnh gọi lại đã trả về và không có lệnh gọi lại bổ sung nào có thể được kích hoạt trong tương lai. Trên thực tế, điều đó có nghĩa là yêu cầu sẽ không hoạt động sau khi onSucceeded/onCanceled/onFailed trả về và tất cả trình nghe yêu cầu đã hoàn tất đều đã trả về. Vòng đời của các yêu cầu Cronet để biết thêm thông tin.

getDownstreamThroughputKbps

fun getDownstreamThroughputKbps(): Int

Trả về ước tính về thông lượng truyền xuôi (tính bằng kilobit trên giây) do trình ước tính chất lượng mạng tính toán. Đặt thành CONNECTION_METRIC_UNKNOWN nếu không có giá trị. Bạn phải gọi phương thức này sau enableNetworkQualityEstimator, nếu không phương thức này sẽ khai báo một ngoại lệ.

Giá trị trả về
Int

Ước tính thông lượng truyền xuôi tính bằng kilobit/giây.

getEffectiveConnectionType

fun getEffectiveConnectionType(): Int

Trả về giá trị ước tính về loại kết nối hiệu quả do trình ước tính chất lượng mạng tính toán. Gọi enableNetworkQualityEstimator để bắt đầu tính giá trị này.

Giá trị trả về
Int

loại kết nối ước tính. Giá trị trả về là một trong các giá trị EFFECTIVE_CONNECTION_TYPE_* .

getGlobalMetricsDeltas

abstract fun getGlobalMetricsDeltas(): ByteArray<Byte>!

getHttpRttMs

fun getHttpRttMs(): Int

Trả về giá trị ước tính RTT HTTP (tính bằng mili giây) do công cụ ước tính chất lượng mạng tính toán. Đặt thành CONNECTION_METRIC_UNKNOWN nếu không có giá trị. Bạn phải gọi phương thức này sau enableNetworkQualityEstimator, nếu không phương thức này sẽ khai báo một ngoại lệ.

Giá trị trả về
Int

Ước tính RTT HTTP tính bằng mili giây.

getTransportRttMs

fun getTransportRttMs(): Int

Trả về ước tính RTT của hoạt động truyền tải (tính bằng mili giây) do công cụ ước tính chất lượng mạng tính toán. Đặt thành CONNECTION_METRIC_UNKNOWN nếu không có giá trị. Bạn phải gọi phương thức này sau enableNetworkQualityEstimator, nếu không phương thức này sẽ khai báo một ngoại lệ.

Giá trị trả về
Int

Ước tính RTT truyền tải tính bằng mili giây.

getVersionString

abstract fun getVersionString(): String!
Giá trị trả về
String!

chuỗi phiên bản mà con người có thể đọc được của công cụ.

newUrlRequestBuilder

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

Tạo trình tạo cho UrlRequest. Tất cả các lệnh gọi lại cho các đối tượng UrlRequest đã tạo sẽ được gọi trên các luồng của executor. executor không được chạy các nhiệm vụ trên luồng gọi execute để ngăn chặn các thao tác mạng bị chặn và gây ra các ngoại lệ trong quá trình ngừng hoạt động.

Tham số
url: String!

URL cho các yêu cầu được tạo.

callback: UrlRequest.Callback!

đối tượng gọi lại được gọi trên các sự kiện khác nhau.

executor: Executor!

Executor mà tất cả các lệnh gọi lại sẽ được gọi.

openConnection

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

Thiết lập một kết nối mới đến tài nguyên do URLurl chỉ định.

Lưu ý: Việc triển khai java.net.HttpURLConnection của Cronet phải tuân thủ một số hạn chế nhất định, hãy xem createURLStreamHandlerFactory để biết thông tin chi tiết.

Tham số
url: URL!

URL của tài nguyên cần kết nối.

Giá trị trả về
URLConnection!

một thực thể java.net.HttpURLConnection do CronetEngine này triển khai.

Gửi
java.io.IOException

nếu xảy ra lỗi trong khi mở kết nối.

removeRequestFinishedListener

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

Xoá một trình nghe yêu cầu đã hoàn tất.

Tham số
listener: RequestFinishedInfo.Listener!

trình nghe cần xoá.

removeRttListener

fun removeRttListener(listener: NetworkQualityRttListener!): Unit

Xoá một trình nghe thời gian khứ hồi nếu trước đó đã đăng ký bằng addRttListener. Bạn nên gọi phương thức này sau khi thêm một NetworkQualityRttListener để ngừng nhận dữ liệu quan sát.

Tham số
listener: NetworkQualityRttListener!

trình nghe thời gian khứ hồi.

removeThroughputListener

fun removeThroughputListener(listener: NetworkQualityThroughputListener!): Unit

Xoá một trình nghe thông lượng. Bạn nên gọi phương thức này sau khi thêm NetworkQualityThroughputListener bằng addThroughputListener để ngừng nhận dữ liệu quan sát.

Tham số
listener: NetworkQualityThroughputListener!

trình nghe thông lượng.

tắt

abstract fun shutdown(): Unit

Tắt CronetEngine nếu không có yêu cầu nào đang hoạt động, nếu không thì sẽ gửi một ngoại lệ.

Không thể gọi trên luồng mạng – luồng mà Cronet gọi vào Executor (khác với luồng mà Executor gọi các lệnh gọi lại). Có thể chặn cho đến khi tất cả các tài nguyên của CronetEngine được dọn dẹp.

startNetLogToDisk

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

Bắt đầu ghi nhật ký NetLog vào một thư mục được chỉ định với kích thước giới hạn. NetLog sẽ chứa các sự kiện do tất cả CronetEngine đang hoạt động phát ra. NetLog rất hữu ích khi gỡ lỗi. Sau khi quá trình ghi nhật ký dừng stopNetLog, dữ liệu sẽ được ghi vào netlog.json trong dirPath. Nếu quá trình ghi nhật ký bị gián đoạn, bạn có thể ghép các tệp có trong thư mục con .inprogress theo cách thủ công bằng cách sử dụng: https://chromium.googlesource.com/chromium/src/+/main/net/tools/stitch_net_log_files.py. Bạn có thể xem nhật ký bằng trình duyệt Chrome khi truy cập vào chrome://net-internals/#import.

Tham số
dirPath: String!

thư mục nơi tệp netlog.json sẽ được tạo. dirPath phải đã tồn tại. Các tệp NetLog không được tồn tại trong thư mục. Nếu đang ghi nhật ký, phương thức này sẽ bị bỏ qua.

logAll: Boolean

true để đưa các sự kiện cơ bản, cookie người dùng, thông tin đăng nhập và tất cả các byte được chuyển vào nhật ký. Lựa chọn này có nguy cơ xâm phạm quyền riêng tư vì để lộ thông tin đăng nhập của người dùng. Bạn chỉ nên sử dụng lựa chọn này khi có sự đồng ý của người dùng và trong những trường hợp nhật ký không được công khai. false để chỉ bao gồm các sự kiện cơ bản.

maxSize: Int

tổng dung lượng ổ đĩa tối đa tính bằng byte mà NetLog nên sử dụng. Mức sử dụng dung lượng ổ đĩa thực tế có thể vượt quá giới hạn này một chút.

startNetLogToFile

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

Bắt đầu ghi nhật ký NetLog vào một tệp. NetLog sẽ chứa các sự kiện do tất cả CronetEngine đang hoạt động phát ra. NetLog rất hữu ích khi gỡ lỗi. Bạn có thể xem tệp này bằng trình duyệt Chrome khi truy cập vào chrome://net-internals/#import

Tham số
fileName: String!

đường dẫn đầy đủ đến tệp. Không được để trống. Nếu tệp tồn tại, tệp đó sẽ bị cắt ngắn trước khi bắt đầu. Nếu đang ghi nhật ký, phương thức này sẽ bị bỏ qua.

logAll: Boolean

true để đưa các sự kiện cơ bản, cookie người dùng, thông tin đăng nhập và tất cả các byte được chuyển vào nhật ký. Lựa chọn này có nguy cơ xâm phạm quyền riêng tư vì để lộ thông tin đăng nhập của người dùng. Bạn chỉ nên sử dụng lựa chọn này khi có sự đồng ý của người dùng và trong những trường hợp nhật ký không được công khai. false để chỉ bao gồm các sự kiện cơ bản.

stopNetLog

abstract fun stopNetLog(): Unit

Dừng ghi nhật ký NetLog và xoá tệp vào ổ đĩa. Nếu phiên ghi nhật ký chưa bắt đầu, lệnh gọi này sẽ bị bỏ qua.