CronetEngine

abstract class CronetEngine

Znane bezpośrednie podklasy
Znane podklasy pośrednie
JavaCronetEngine

java.net.HttpURLConnection oparte na CronetEngine.


Silnik do przetwarzania UrlRequest, który korzysta z najlepszego stosu HTTP dostępnego na bieżącej platformie. Instancję tej klasy można utworzyć za pomocą Builder.

Podsumowanie

Typy zagnieżdżone

Konstruktor CronetEngine, który umożliwia konfigurowanie CronetEngine w czasie działania.

Ta klasa została wycofana.

Funkcja System.loadLibrary była zawodna w przypadku minSDK <= 23, dlatego ta metoda była używana do udostępniania alternatywnych, bardziej niezawodnych programów wczytujących.

Stałe

const Int

Wartość liczby aktywnych żądań jest nieznana

const Int

Wartość danych o połączeniu jest nieznana.

const Int

Szacowany typ połączenia to 2G.

const Int

Szacowany efektywny typ połączenia to 3G.

const Int

Szacowany efektywny typ połączenia to 4G.

const Int

Urządzenie jest offline.

const Int

Szacowany efektywny typ połączenia to wolne 2G.

const Int

Oszacowanie efektywnego typu połączenia jest nieznane.

const Long

Wartość, która ma zostać użyta do cofnięcia poprzedniego powiązania sieci.

Konstruktory publiczne

Funkcje publiczne

Unit

Rejestruje odbiorcę, który jest wywoływany po zakończeniu każdej prośby z informacjami o niej.

Unit

Rejestruje odbiornik, który jest wywoływany, gdy estymator jakości sieci zarejestruje próbkę czasu podróży w obie strony.

Unit

Rejestruje odbiorcę, który jest wywoływany za każdym razem, gdy estymator jakości sieci zarejestruje pomiar przepustowości próbki.

Unit
bindToNetwork(networkHandle: Long)

Wiąże silnik z określonym uchwytem sieci.

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

Konfiguruje narzędzie do szacowania jakości sieci na potrzeby testowania.

abstract URLStreamHandlerFactory!

Tworzy URLStreamHandlerFactory do obsługi ruchu HTTP i HTTPS.

Int

Zwraca liczbę aktywnych żądań.

Int

Zwraca oszacowaną przepustowość pobierania (w kilobitach na sekundę) obliczoną przez narzędzie do szacowania jakości sieci.

Int

Zwraca szacunkową wartość efektywnego typu połączenia obliczoną przez narzędzie do szacowania jakości sieci.

abstract ByteArray<Byte>!

Ta funkcja została wycofana.

W nowoczesnych wersjach Croneta ta metoda zawsze zwraca pustą tablicę.

Int

Zwraca oszacowany czas RTT HTTP (w milisekundach) obliczony przez narzędzie do szacowania jakości sieci.

Int

Zwraca szacunkowy czas RTT transportu (w milisekundach) obliczony przez narzędzie do szacowania jakości sieci.

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

Tworzy kreator dla UrlRequest.

abstract URLConnection!

Nawiązuje nowe połączenie z zasobem określonym przez URLurl.

Unit

Usuwa odbiorcę zakończonej prośby.

Unit

Usuwa odbiorcę czasów podróży w obie strony, jeśli został wcześniej zarejestrowany za pomocą addRttListener.

Unit

Usuwa odbiorcę przepustowości.

abstract Unit

Zamyka CronetEngine, jeśli nie ma aktywnych żądań, w przeciwnym razie zgłasza wyjątek.

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

Rozpoczyna rejestrowanie w NetLog w określonym katalogu o ograniczonej wielkości.

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

Rozpoczyna rejestrowanie w pliku informacji z NetLog.

abstract Unit

Zatrzymuje rejestrowanie w NetLogu i zapisuje plik na dysku.

Stałe

ACTIVE_REQUEST_COUNT_UNKNOWN

const val ACTIVE_REQUEST_COUNT_UNKNOWN = -1: Int

Wartość liczby aktywnych żądań jest nieznana

CONNECTION_METRIC_UNKNOWN

const val CONNECTION_METRIC_UNKNOWN = -1: Int

Wartość danych o połączeniu jest nieznana.

EFFECTIVE_CONNECTION_TYPE_2G

const val EFFECTIVE_CONNECTION_TYPE_2G = 3: Int

Szacowany typ połączenia to 2G.

EFFECTIVE_CONNECTION_TYPE_3G

const val EFFECTIVE_CONNECTION_TYPE_3G = 4: Int

Szacowany efektywny typ połączenia to 3G.

EFFECTIVE_CONNECTION_TYPE_4G

const val EFFECTIVE_CONNECTION_TYPE_4G = 5: Int

Szacowany efektywny typ połączenia to 4G.

EFFECTIVE_CONNECTION_TYPE_OFFLINE

const val EFFECTIVE_CONNECTION_TYPE_OFFLINE = 1: Int

Urządzenie jest offline.

EFFECTIVE_CONNECTION_TYPE_SLOW_2G

const val EFFECTIVE_CONNECTION_TYPE_SLOW_2G = 2: Int

Szacowany efektywny typ połączenia to wolne 2G.

EFFECTIVE_CONNECTION_TYPE_UNKNOWN

const val EFFECTIVE_CONNECTION_TYPE_UNKNOWN = 0: Int

Oszacowanie efektywnego typu połączenia jest nieznane.

UNBIND_NETWORK_HANDLE

const val UNBIND_NETWORK_HANDLE = -1: Long

Wartość, która ma zostać użyta do cofnięcia poprzedniego powiązania sieci.

Konstruktory publiczne

CronetEngine

CronetEngine()

Funkcje publiczne

addRequestFinishedListener

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

Rejestruje odbiorcę, który jest wywoływany po zakończeniu każdej prośby z informacjami o niej.

Detektor jest wywoływany na java.util.concurrent.Executor dostarczonym przez detektor.

Parametry
listener: RequestFinishedInfo.Listener!

słuchacz zrealizowanych żądań.

addRttListener

fun addRttListener(listener: NetworkQualityRttListener!): Unit

Rejestruje odbiornik, który jest wywoływany, gdy estymator jakości sieci zarejestruje próbkę czasu podróży w obie strony. Tę metodę należy wywołać po wywołaniu metody enableNetworkQualityEstimator. W przeciwnym razie zostanie zgłoszony wyjątek. Czasy podróży w obie strony mogą być rejestrowane na różnych warstwach stosu sieciowego, w tym TCP, QUIC i na warstwie żądania URL. Funkcja nasłuchująca jest wywoływana na obiekcie java.util.concurrent.Executor przekazywanym do funkcji enableNetworkQualityEstimator.

Parametry
listener: NetworkQualityRttListener!

odbiornik czasu błądzenia.

addThroughputListener

fun addThroughputListener(listener: NetworkQualityThroughputListener!): Unit

Rejestruje odbiorcę, który jest wywoływany za każdym razem, gdy estymator jakości sieci zarejestruje pomiar przepustowości próbki. Musi być wywoływana po enableNetworkQualityEstimator. Obserwacje przepustowości są obliczane na podstawie pomiaru liczby bajtów odczytanych przez aktywny interfejs sieciowy w czasie, gdy otrzymywana jest co najmniej 1 odpowiedź na adres URL. Funkcja nasłuchująca jest wywoływana na obiekcie java.util.concurrent.Executor przekazywanym do funkcji enableNetworkQualityEstimator.

Parametry
listener: NetworkQualityThroughputListener!

odbiorca przepustowości.

bindToNetwork

fun bindToNetwork(networkHandle: Long): Unit

Wiąże silnik z określonym uchwytem sieci. Wszystkie żądania utworzone za pomocą tego mechanizmu będą korzystać z sieci powiązanej z tym uchwytem. Jeśli ta sieć zostanie odłączona, wszystkie żądania zakończą się niepowodzeniem. Dokładny błąd zależy od etapu przetwarzania żądania w momencie odłączenia sieci. Uchwyty sieci można uzyskać za pomocą Network#getNetworkHandle. Dostępne tylko na urządzeniach z Androidem Marshmallow i nowszym.

Parametry
networkHandle: Long

uchwyt sieci, do której ma być przypisany silnik. Aby odłączyć konto, wpisz UNBIND_NETWORK_HANDLE.

configureNetworkQualityEstimatorForTesting

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

Konfiguruje narzędzie do szacowania jakości sieci na potrzeby testowania. Tę funkcję należy wywołać przed dodaniem odbiorników czasu podróży w obie strony i przepustowości oraz po włączeniu narzędzia do szacowania jakości sieci.

Parametry
useLocalHostRequests: Boolean

uwzględniać w szacunkach żądania wysyłane do hosta lokalnego.

useSmallerResponses: Boolean

uwzględniać małe odpowiedzi w szacunkach przepustowości;

disableOfflineCheck: Boolean

Jeśli wartość to „true”, wyłącza sprawdzanie urządzenia w trybie offline podczas obliczania efektywnego typu połączenia lub zapisywania ustawień.

createURLStreamHandlerFactory

abstract fun createURLStreamHandlerFactory(): URLStreamHandlerFactory!

Tworzy URLStreamHandlerFactory do obsługi ruchu HTTP i HTTPS. Instancję tej klasy można zainstalować za pomocą setURLStreamHandlerFactory, dzięki czemu ten obiekt CronetEngine będzie domyślnie używany w przypadku wszystkich żądań utworzonych za pomocą openConnection.

Cronet nie korzysta z niektórych funkcji HTTP udostępnianych przez system:

Cronet obsługuje i zaleca żądania korzystające z protokołu HTTPS, ale nie obsługuje interfejsu HttpsURLConnection API. Brak obsługi obejmuje też nieużywanie niektórych funkcji HTTPS udostępnianych przez system:

Zwraca
URLStreamHandlerFactory!

instancja URLStreamHandlerFactory zaimplementowana przez ten obiekt CronetEngine.

getActiveRequestCount

fun getActiveRequestCount(): Int

Zwraca liczbę aktywnych żądań.

Żądanie staje się „aktywne” w metodzie UrlRequest.start(), pod warunkiem że nie zgłasza ona wyjątku. Staje się nieaktywny, gdy wszystkie wywołania zwrotne zostaną zwrócone i nie będzie można wywołać kolejnych. W praktyce oznacza to, że żądanie jest nieaktywne, gdy funkcja onSucceeded/onCanceled/onFailed zwróci wartość i wszyscy odbiorcy zakończenia żądania zwrócą wartość. Więcej informacji znajdziesz w sekcji Cykl życia żądań Cronet.

getDownstreamThroughputKbps

fun getDownstreamThroughputKbps(): Int

Zwraca oszacowaną przepustowość pobierania (w kilobitach na sekundę) obliczoną przez narzędzie do szacowania jakości sieci. Ustaw wartość CONNECTION_METRIC_UNKNOWN, jeśli wartość jest niedostępna. Tę funkcję należy wywołać po wywołaniu funkcji enableNetworkQualityEstimator. W przeciwnym razie zostanie zgłoszony wyjątek.

Zwraca
Int

Szacunkowa przepustowość pobierania w kilobitach na sekundę.

getEffectiveConnectionType

fun getEffectiveConnectionType(): Int

Zwraca szacunkową wartość efektywnego typu połączenia obliczoną przez narzędzie do szacowania jakości sieci. Aby rozpocząć obliczanie tej wartości, wywołaj funkcję enableNetworkQualityEstimator.

Zwraca
Int

szacowany typ połączenia. Zwracana wartość to jedna z wartości EFFECTIVE_CONNECTION_TYPE_* .

getGlobalMetricsDeltas

abstract fun getGlobalMetricsDeltas(): ByteArray<Byte>!

getHttpRttMs

fun getHttpRttMs(): Int

Zwraca oszacowany czas RTT HTTP (w milisekundach) obliczony przez narzędzie do szacowania jakości sieci. Ustaw wartość CONNECTION_METRIC_UNKNOWN, jeśli wartość jest niedostępna. Tę funkcję należy wywołać po wywołaniu funkcji enableNetworkQualityEstimator. W przeciwnym razie zostanie zgłoszony wyjątek.

Zwraca
Int

Szacunkowy czas RTT HTTP w milisekundach.

getTransportRttMs

fun getTransportRttMs(): Int

Zwraca szacunkowy czas RTT transportu (w milisekundach) obliczony przez narzędzie do szacowania jakości sieci. Ustaw wartość CONNECTION_METRIC_UNKNOWN, jeśli wartość jest niedostępna. Tę funkcję należy wywołać po funkcji enableNetworkQualityEstimator. W przeciwnym razie zgłosi wyjątek.

Zwraca
Int

Szacowany czas RTT transportu w milisekundach.

getVersionString

abstract fun getVersionString(): String!
Zwraca
String!

zrozumiały dla człowieka ciąg tekstowy z wersją silnika.

newUrlRequestBuilder

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

Tworzy kreator dla UrlRequest. Wszystkie wywołania zwrotne dla wygenerowanych obiektów UrlRequest będą wywoływane w wątkach executor. executor nie może wykonywać zadań w wątku wywołującym execute, aby zapobiec blokowaniu operacji sieciowych i powodowaniu wyjątków podczas zamykania.

Parametry
url: String!

Adres URL wygenerowanych żądań.

callback: UrlRequest.Callback!

obiekt wywołania zwrotnego, który jest wywoływany w przypadku różnych zdarzeń.

executor: Executor!

Executor, w którym będą wywoływane wszystkie wywołania zwrotne.

openConnection

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

Nawiązuje nowe połączenie z zasobem określonym przez URLurl.

Uwaga: implementacja Croneta java.net.HttpURLConnection podlega pewnym ograniczeniom. Więcej informacji znajdziesz w sekcji createURLStreamHandlerFactory.

Parametry
url: URL!

Adres URL zasobu, z którym zostanie nawiązane połączenie.

Zwraca
URLConnection!

instancja java.net.HttpURLConnection zaimplementowana przez ten obiekt CronetEngine.

Zgłasza
java.io.IOException

jeśli podczas otwierania połączenia wystąpi błąd.

removeRequestFinishedListener

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

Usuwa odbiorcę zakończonej prośby.

Parametry
listener: RequestFinishedInfo.Listener!

słuchacza do usunięcia.

removeRttListener

fun removeRttListener(listener: NetworkQualityRttListener!): Unit

Usuwa odbiorcę czasów podróży w obie strony, jeśli został wcześniej zarejestrowany za pomocą addRttListener. Tę metodę należy wywołać po dodaniu obiektu NetworkQualityRttListener, aby zatrzymać odbieranie obserwacji.

Parametry
listener: NetworkQualityRttListener!

odbiornik czasu błądzenia.

removeThroughputListener

fun removeThroughputListener(listener: NetworkQualityThroughputListener!): Unit

Usuwa odbiorcę przepustowości. Tę metodę należy wywołać po dodaniu NetworkQualityThroughputListener za pomocą addThroughputListener, aby przestać otrzymywać obserwacje.

Parametry
listener: NetworkQualityThroughputListener!

odbiornik przepustowości.

wyłączenie

abstract fun shutdown(): Unit

Zamyka CronetEngine, jeśli nie ma aktywnych żądań, w przeciwnym razie zgłasza wyjątek.

Nie można wywoływać w wątku sieciowym – wątku, w którym Cronet wywołuje wykonawcę (różni się on od wątku, w którym wykonawca wywołuje wywołania zwrotne). Może blokować do czasu wyczyszczenia wszystkich zasobów CronetEngine.

startNetLogToDisk

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

Rozpoczyna rejestrowanie w NetLog w określonym katalogu o ograniczonej wielkości. NetLog będzie zawierać zdarzenia emitowane przez wszystkie aktywne obiekty CronetEngine. NetLog jest przydatny do debugowania. Po zatrzymaniu rejestrowania stopNetLog dane zostaną zapisane w pliku netlog.json w folderze dirPath. Jeśli rejestrowanie zostanie przerwane, możesz ręcznie połączyć pliki znajdujące się w podkatalogu .inprogress, korzystając z tego skryptu: https://chromium.googlesource.com/chromium/src/+/main/net/tools/stitch_net_log_files.py. Dziennik można wyświetlić w przeglądarce Chrome, przechodząc do strony chrome://net-internals/#import.

Parametry
dirPath: String!

katalog, w którym zostanie utworzony plik netlog.json. Ścieżka dirPath musi już istnieć. W katalogu nie mogą znajdować się pliki NetLog. Jeśli logowanie jest aktywne, ta metoda jest ignorowana.

logAll: Boolean

true, aby uwzględnić w dzienniku podstawowe zdarzenia, pliki cookie użytkownika, dane logowania i wszystkie przesłane bajty. Ta opcja wiąże się z ryzykiem naruszenia prywatności, ponieważ ujawnia dane logowania użytkownika. Należy jej używać tylko za zgodą użytkownika i w sytuacjach, w których dziennik nie będzie publiczny. false, aby uwzględniać tylko podstawowe zdarzenia.

maxSize: Int

maksymalna łączna ilość miejsca na dysku w bajtach, która powinna być używana przez NetLog; Rzeczywiste wykorzystanie miejsca na dysku może nieznacznie przekraczać ten limit.

startNetLogToFile

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

Rozpoczyna rejestrowanie w pliku informacji z NetLog. NetLog będzie zawierać zdarzenia emitowane przez wszystkie aktywne obiekty CronetEngine. NetLog jest przydatny do debugowania. Plik można wyświetlić w przeglądarce Chrome, przechodząc do strony chrome://net-internals/#import.

Parametry
fileName: String!

pełną ścieżkę do pliku. Nie może być puste. Jeśli plik istnieje, przed rozpoczęciem jest obcinany. Jeśli logowanie jest aktywne, ta metoda jest ignorowana.

logAll: Boolean

true, aby uwzględnić w dzienniku podstawowe zdarzenia, pliki cookie użytkownika, dane logowania i wszystkie przesłane bajty. Ta opcja wiąże się z ryzykiem naruszenia prywatności, ponieważ ujawnia dane logowania użytkownika. Należy jej używać tylko za zgodą użytkownika i w sytuacjach, w których dziennik nie będzie publiczny. false, aby uwzględniać tylko podstawowe zdarzenia.

stopNetLog

abstract fun stopNetLog(): Unit

Zatrzymuje rejestrowanie w NetLogu i zapisuje plik na dysku. Jeśli sesja rejestrowania nie jest w toku, to wywołanie jest ignorowane.