CronetEngine

public abstract class CronetEngine

Bilinen doğrudan alt sınıflar
Bilinen dolaylı alt sınıflar
JavaCronetEngine

java.net.HttpURLConnection, CronetEngine'i destekledi.


Mevcut platformda bulunan en iyi HTTP yığınını kullanan UrlRequest işleme motoru. Bu sınıfın bir örneği Builder kullanılarak oluşturulabilir.

Özet

İç içe yerleştirilmiş türler

CronetEngine için bir oluşturucu. Bu oluşturucu, CronetEngine'nin çalışma zamanı yapılandırmasına olanak tanır.

Cronet yerel kitaplığını yüklemek için bir yöntem sağlayan sınıf.

Sabitler

static final int

Etkin istek sayısının değeri bilinmiyor

static final int

Bağlantı metriğinin değeri bilinmiyor.

static final int

Etkin bağlantı türü tahmini 2G'dir.

static final int

Etkin bağlantı türü tahmini 3G'dir.

static final int

Etkin bağlantı türü tahmini 4G'dir.

static final int

Cihaz çevrimdışı.

static final int

Etkin bağlantı türü tahmini, yavaş 2G'dir.

static final int

Geçerli bağlantı türü tahmini bilinmiyor.

static final long

Önceki ağ bağlamalarını geri almak için kullanılacak değer.

Herkese açık oluşturucular

Herkese açık yöntemler

void

Her isteğin sonunda istek bilgileriyle birlikte çağrılan bir dinleyici kaydeder.

void

Ağ kalitesi tahmin aracı, örnek gidiş dönüş süresine tanık olduğunda çağrılan bir dinleyici kaydeder.

void

Ağ kalitesi tahmin aracı, örnek işleme hızı ölçümü yaptığında çağrılan bir dinleyiciyi kaydeder.

void
bindToNetwork(long networkHandle)

Motoru belirtilen ağ tanıtıcısına bağlar.

void
configureNetworkQualityEstimatorForTesting(
    boolean useLocalHostRequests,
    boolean useSmallerResponses,
    boolean disableOfflineCheck
)

Test için ağ kalitesi tahmincisini yapılandırır.

abstract URLStreamHandlerFactory

HTTP ve HTTPS trafiğini işlemek için bir URLStreamHandlerFactory oluşturur.

int

Etkin isteklerin sayısını döndürür.

int

Ağ kalitesi tahmincisi tarafından hesaplanan aşağı akış işleme hızı tahminini (kilobit/saniye cinsinden) döndürür.

int

Ağ kalitesi tahmincisi tarafından hesaplanan etkin bağlantı türünün tahminini döndürür.

abstract byte[]

Bu yöntem kullanımdan kaldırılmıştır.

Cronet'in modern sürümlerinde bu her zaman boş bir dizi döndürür.

int

Ağ kalitesi tahmincisi tarafından hesaplanan HTTP RTT tahminini (milisaniye cinsinden) döndürür.

int

Ağ kalitesi tahmincisi tarafından hesaplanan aktarım RTT tahminini (milisaniye cinsinden) döndürür.

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

UrlRequest için bir derleyici oluşturur.

abstract URLConnection

URLurl ile belirtilen kaynağa yeni bir bağlantı oluşturur.

void

Tamamlanmış bir istek dinleyicisini kaldırır.

void

Daha önce addRttListener ile kaydedilmişse gidiş dönüş sürelerinin dinleyicisini kaldırır.

void

Verim dinleyicisini kaldırır.

abstract void

Etkin istek yoksa CronetEngine kapatılır, aksi takdirde istisna oluşturulur.

void
startNetLogToDisk(String dirPath, boolean logAll, int maxSize)

NetLog'un belirtilen bir dizine sınırlı boyutta günlük kaydetmesini başlatır.

abstract void
startNetLogToFile(String fileName, boolean logAll)

NetLog günlük kaydını bir dosyaya başlatır.

abstract void

NetLog günlüğünü durdurur ve dosyayı diske boşaltır.

Sabitler

ACTIVE_REQUEST_COUNT_UNKNOWN

public static final int ACTIVE_REQUEST_COUNT_UNKNOWN = -1

Etkin istek sayısının değeri bilinmiyor

CONNECTION_METRIC_UNKNOWN

public static final int CONNECTION_METRIC_UNKNOWN = -1

Bağlantı metriğinin değeri bilinmiyor.

EFFECTIVE_CONNECTION_TYPE_2G

public static final int EFFECTIVE_CONNECTION_TYPE_2G = 3

Etkin bağlantı türü tahmini 2G'dir.

Aşağıdaki kaynakları da incelemenizi öneririz:
getEffectiveConnectionType

EFFECTIVE_CONNECTION_TYPE_3G

public static final int EFFECTIVE_CONNECTION_TYPE_3G = 4

Etkin bağlantı türü tahmini 3G'dir.

Aşağıdaki kaynakları da incelemenizi öneririz:
getEffectiveConnectionType

EFFECTIVE_CONNECTION_TYPE_4G

public static final int EFFECTIVE_CONNECTION_TYPE_4G = 5

Etkin bağlantı türü tahmini 4G'dir.

Aşağıdaki kaynakları da incelemenizi öneririz:
getEffectiveConnectionType

EFFECTIVE_CONNECTION_TYPE_OFFLINE

public static final int EFFECTIVE_CONNECTION_TYPE_OFFLINE = 1

Cihaz çevrimdışı.

Aşağıdaki kaynakları da incelemenizi öneririz:
getEffectiveConnectionType

EFFECTIVE_CONNECTION_TYPE_SLOW_2G

public static final int EFFECTIVE_CONNECTION_TYPE_SLOW_2G = 2

Etkin bağlantı türü tahmini, yavaş 2G'dir.

Aşağıdaki kaynakları da incelemenizi öneririz:
getEffectiveConnectionType

EFFECTIVE_CONNECTION_TYPE_UNKNOWN

public static final int EFFECTIVE_CONNECTION_TYPE_UNKNOWN = 0

Geçerli bağlantı türü tahmini bilinmiyor.

Aşağıdaki kaynakları da incelemenizi öneririz:
getEffectiveConnectionType

UNBIND_NETWORK_HANDLE

public static final long UNBIND_NETWORK_HANDLE = -1

Önceki ağ bağlamalarını geri almak için kullanılacak değer.

Herkese açık oluşturucular

CronetEngine

public CronetEngine()

Herkese açık yöntemler

addRequestFinishedListener

public void addRequestFinishedListener(RequestFinishedInfo.Listener listener)

Her isteğin sonunda istek bilgileriyle birlikte çağrılan bir dinleyici kaydeder.

Dinleyici, dinleyici tarafından sağlanan java.util.concurrent.Executor üzerinden aranır.

Parametreler
RequestFinishedInfo.Listener listener

Tamamlanan istekler için dinleyici.

addRttListener

public void addRttListener(NetworkQualityRttListener listener)

Ağ kalitesi tahmin aracı, örnek gidiş dönüş süresine tanık olduğunda çağrılan bir dinleyici kaydeder. Bu, enableNetworkQualityEstimator'dan sonra çağrılmalı, aksi takdirde istisna oluşturulmalıdır. Gidiş dönüş süreleri, TCP ve QUIC dahil olmak üzere ağ yığınının çeşitli katmanlarında ve URL isteği katmanında kaydedilebilir. Dinleyici, enableNetworkQualityEstimator'ye iletilen java.util.concurrent.Executor üzerinde çağrılır.

Parametreler
NetworkQualityRttListener listener

gidiş dönüş sürelerinin dinleyicisi.

addThroughputListener

public void addThroughputListener(NetworkQualityThroughputListener listener)

Ağ kalitesi tahmin aracı, örnek işleme hızı ölçümü yaptığında çağrılan bir dinleyiciyi kaydeder. Bu, enableNetworkQualityEstimator tarihinden sonra çağrılmalıdır. Veri işleme hızı gözlemleri, en az bir URL yanıtı alındığı zamanlarda etkin ağ arayüzü üzerinden okunan baytların ölçülmesiyle hesaplanır. Dinleyici, enableNetworkQualityEstimator'ye iletilen java.util.concurrent.Executor üzerinde çağrılır.

Parametreler
NetworkQualityThroughputListener listener

işleme hızı dinleyicisi.

bindToNetwork

public void bindToNetwork(long networkHandle)

Motoru belirtilen ağ tanıtıcısına bağlar. Bu motor aracılığıyla oluşturulan tüm isteklerde bu kimlikle ilişkili ağ kullanılır. Bu ağ bağlantısı kesilirse tüm istekler başarısız olur. Hatanın tam olarak ne olduğu, ağ bağlantısının kesildiği sırada istek işleme aşamasına bağlıdır. Ağ kullanıcı adları Network#getNetworkHandle üzerinden alınabilir. Yalnızca Android Marshmallow ve sonraki sürümlerde kullanılabilir.

Parametreler
long networkHandle

Motorun bağlanacağı ağ tanıtıcısı. Bağlantıyı kaldırmak için UNBIND_NETWORK_HANDLE değerini belirtin.

configureNetworkQualityEstimatorForTesting

public void configureNetworkQualityEstimatorForTesting(
    boolean useLocalHostRequests,
    boolean useSmallerResponses,
    boolean disableOfflineCheck
)

Test için ağ kalitesi tahmincisini yapılandırır. Bu işlev, gidiş dönüş süresi ve işleme hızı dinleyicileri eklenmeden önce ve ağ kalitesi tahmin aracı etkinleştirildikten sonra çağrılmalıdır.

Parametreler
boolean useLocalHostRequests

Tahminlere localhost isteklerini dahil etme

boolean useSmallerResponses

küçük yanıtları işleme hızı tahminlerine dahil etme

boolean disableOfflineCheck

True olarak ayarlandığında, etkin bağlantı türü hesaplanırken veya tercihler yazılırken cihazın çevrimdışı olup olmadığına dair kontrolleri devre dışı bırakır.

createURLStreamHandlerFactory

public abstract URLStreamHandlerFactory createURLStreamHandlerFactory()

HTTP ve HTTPS trafiğini işlemek için bir URLStreamHandlerFactory oluşturur. Bu sınıfın bir örneği setURLStreamHandlerFactory aracılığıyla yüklenebilir. Böylece, openConnection aracılığıyla oluşturulan tüm istekler için varsayılan olarak bu CronetEngine kullanılır.

Cronet, sistem üzerinden sağlanan belirli HTTP özelliklerini kullanmaz:

Cronet, HTTPS protokolünü kullanan istekleri destekleyip teşvik etse de HttpsURLConnection API'si için destek sağlamaz. Bu destek eksikliği, sistem üzerinden sağlanan belirli HTTPS özelliklerinin kullanılmamasını da kapsar:

İadeler
URLStreamHandlerFactory

Bu CronetEngine tarafından uygulanan bir URLStreamHandlerFactory örneği.

getActiveRequestCount

public int getActiveRequestCount()

Etkin isteklerin sayısını döndürür.

Yöntemin istisna oluşturmadığı varsayıldığında, UrlRequest.start() içinde bir istek "etkin" hale gelir. Tüm geri aramalar döndüğünde ve gelecekte ek geri aramalar tetiklenemediğinde devre dışı kalır. Uygulamada bu, onSucceeded/onCanceled/onFailed döndürüldükten ve tüm istek tamamlandı dinleyicileri döndürüldükten sonra isteğin etkin olmadığı anlamına gelir. Daha fazla bilgi için Cronet isteklerinin yaşam döngüsü başlıklı makaleyi inceleyin.

getDownstreamThroughputKbps

public int getDownstreamThroughputKbps()

Ağ kalitesi tahmincisi tarafından hesaplanan aşağı akış işleme hızı tahminini (kilobit/saniye cinsinden) döndürür. Değer kullanılamıyorsa CONNECTION_METRIC_UNKNOWN olarak ayarlayın. Bu, enableNetworkQualityEstimator'dan sonra çağrılmalıdır. Aksi takdirde istisna oluşturur.

İadeler
int

Aşağı akış işleme hızının kilobit/saniye cinsinden tahmini.

getEffectiveConnectionType

public int getEffectiveConnectionType()

Ağ kalitesi tahmincisi tarafından hesaplanan etkin bağlantı türünün tahminini döndürür. Bu değeri hesaplamaya başlamak için enableNetworkQualityEstimator numaralı telefonu arayın.

İadeler
int

Tahmini bağlantı türü. Döndürülen değer EFFECTIVE_CONNECTION_TYPE_* değerlerinden biridir.

getGlobalMetricsDeltas

public abstract byte[] getGlobalMetricsDeltas()

getHttpRttMs

public int getHttpRttMs()

Ağ kalitesi tahmincisi tarafından hesaplanan HTTP RTT tahminini (milisaniye cinsinden) döndürür. Değer kullanılamıyorsa CONNECTION_METRIC_UNKNOWN olarak ayarlayın. Bu, enableNetworkQualityEstimator'dan sonra çağrılmalıdır. Aksi takdirde istisna oluşturur.

İadeler
int

Milisaniye cinsinden HTTP RTT tahmini.

getTransportRttMs

public int getTransportRttMs()

Ağ kalitesi tahmincisi tarafından hesaplanan aktarım RTT tahminini (milisaniye cinsinden) döndürür. Değer kullanılamıyorsa CONNECTION_METRIC_UNKNOWN olarak ayarlayın. Bu, enableNetworkQualityEstimator'dan sonra çağrılmalıdır. Aksi takdirde istisna oluşturur.

İadeler
int

Milisaniye cinsinden aktarım RTT tahmini.

getVersionString

public abstract String getVersionString()
İadeler
String

Motorun kullanıcılar tarafından okunabilir sürüm dizesi.

newUrlRequestBuilder

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

UrlRequest için bir derleyici oluşturur. Oluşturulan UrlRequest nesneleri için tüm geri çağırmalar executor'nin iş parçacıklarında çağrılır. Ağ işlemlerinin engellenmesini ve kapatma sırasında istisnaların oluşmasını önlemek için executor, execute'ı çağıran iş parçacığında görev çalıştırmamalıdır.

Parametreler
String url

Oluşturulan isteklerin URL'si.

UrlRequest.Callback callback

Farklı etkinliklerde çağrılan geri çağırma nesnesi.

Executor executor

Executor üzerinde tüm geri aramalar çağrılır.

openConnection

public abstract URLConnection openConnection(URL url)

URLurl ile belirtilen kaynağa yeni bir bağlantı oluşturur.

Not: Cronet'in java.net.HttpURLConnection uygulanması belirli sınırlamalara tabidir. Ayrıntılar için createURLStreamHandlerFactory bölümüne bakın.

Parametreler
URL url

Bağlanılacak kaynağın URL'si.

İadeler
URLConnection

Bu CronetEngine tarafından uygulanan bir java.net.HttpURLConnection örneği.

Verdiği hatalar
java.io.IOException

Bağlantı açılırken bir hata oluşursa

removeRequestFinishedListener

public void removeRequestFinishedListener(RequestFinishedInfo.Listener listener)

Tamamlanmış bir istek dinleyicisini kaldırır.

Parametreler
RequestFinishedInfo.Listener listener

kaldırmak istediğiniz dinleyiciyi seçin.

removeRttListener

public void removeRttListener(NetworkQualityRttListener listener)

Daha önce addRttListener ile kaydedilmişse gidiş dönüş sürelerinin dinleyicisini kaldırır. Gözlem almayı durdurmak için NetworkQualityRttListener eklendikten sonra bu yöntem çağrılmalıdır.

Parametreler
NetworkQualityRttListener listener

gidiş dönüş sürelerinin dinleyicisi.

removeThroughputListener

public void removeThroughputListener(NetworkQualityThroughputListener listener)

Verim dinleyicisini kaldırır. Gözlem almayı durdurmak için NetworkQualityThroughputListener, addThroughputListener ile eklendikten sonra bu yöntem çağrılmalıdır.

Parametreler
NetworkQualityThroughputListener listener

işleme hızı dinleyicisi.

shutdown

public abstract void shutdown()

Etkin istek yoksa CronetEngine kapatılır, aksi takdirde istisna oluşturulur.

Ağ iş parçacığında çağrılamaz. Bu iş parçacığı, Cronet'in Executor'da çağırdığı iş parçacığıdır (Executor'ın geri çağırmaları çağırdığı iş parçacığından farklıdır). Tüm CronetEngine kaynakları temizlenene kadar engellenebilir.

startNetLogToDisk

public void startNetLogToDisk(String dirPath, boolean logAll, int maxSize)

NetLog'un belirtilen bir dizine sınırlı boyutta günlük kaydetmesini başlatır. NetLog, tüm etkin CronetEngine'ler tarafından yayınlanan etkinlikleri içerir. NetLog, hata ayıklama için yararlıdır. Günlük kaydı durdurulduktan sonra stopNetLog, veriler dirPath içindeki netlog.json dosyasına yazılır. Günlüğe kaydetme işlemi kesintiye uğrarsa https://chromium .googlesource.com/chromium/src/+/main/net/tools/stitch_net_log_files.py adresini kullanarak.inprogress alt dizininde bulunan dosyaları manuel olarak birleştirebilirsiniz. Günlük, chrome://net-internals/#import adresine giden bir Chrome tarayıcı kullanılarak görüntülenebilir.

Parametreler
String dirPath

netlog.json dosyasının oluşturulacağı dizin. dirPath zaten mevcut olmalıdır. Dizinde NetLog dosyaları bulunmamalıdır. Etkin olarak günlük kaydı tutuluyorsa bu yöntem yoksayılır.

boolean logAll

true temel etkinlikleri, kullanıcı çerezlerini, kimlik bilgilerini ve aktarılan tüm baytları günlüğe dahil etmek için. Bu seçenek, kullanıcının kimlik bilgilerini açığa çıkardığı için gizlilik riski oluşturur. Yalnızca kullanıcının izniyle ve günlüğün herkese açık olmayacağı durumlarda kullanılmalıdır. false simgesini tıklayarak yalnızca temel etkinlikleri dahil edebilirsiniz.

int maxSize

NetLog tarafından kullanılması gereken toplam maksimum disk alanı (bayt). Gerçek disk alanı kullanımı bu sınırı biraz aşabilir.

startNetLogToFile

public abstract void startNetLogToFile(String fileName, boolean logAll)

NetLog günlük kaydını bir dosyaya başlatır. NetLog, tüm etkin CronetEngine'ler tarafından yayınlanan etkinlikleri içerir. NetLog, hata ayıklama için yararlıdır. Dosya, chrome://net-internals/#import adresine gidilerek Chrome tarayıcı kullanılarak görüntülenebilir.

Parametreler
String fileName

Tam dosya yolu. Boş bırakılmamalıdır. Dosya varsa başlamadan önce kısaltılır. Etkin olarak günlük kaydı tutuluyorsa bu yöntem yoksayılır.

boolean logAll

true temel etkinlikleri, kullanıcı çerezlerini, kimlik bilgilerini ve aktarılan tüm baytları günlüğe dahil etmek için. Bu seçenek, kullanıcının kimlik bilgilerini açığa çıkardığı için gizlilik riski oluşturur. Yalnızca kullanıcının izniyle ve günlüğün herkese açık olmayacağı durumlarda kullanılmalıdır. false simgesini tıklayarak yalnızca temel etkinlikleri dahil edebilirsiniz.

stopNetLog

public abstract void stopNetLog()

NetLog günlüğünü durdurur ve dosyayı diske boşaltır. Günlük kaydı oturumu devam etmiyorsa bu çağrı yoksayılır.