CronetEngine

abstract class CronetEngine

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

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.

Bu sınıf kullanımdan kaldırılmıştır.

System.loadLibrary, minSDK <= 23'te güvenilir değildi ve bu yöntem, alternatif ve daha güvenilir yükleyiciler sağlamak için kullanılıyordu.

Sabitler

const Int

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

const Int

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

const Int

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

const Int

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

const Int

Geçerli bağlantı türünün tahmini 4G'dir.

const Int

Cihaz çevrimdışı.

const Int

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

const Int

Etkili bağlantı türü tahmini bilinmiyor.

const Long

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

Herkese açık yapıcılar

Herkese açık işlevler

Unit

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

Unit

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

Unit

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

Unit
bindToNetwork(networkHandle: Long)

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

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

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

abstract URLStreamHandlerFactory!

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

Int

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

Int

Ağ kalitesi tahmincisi tarafından hesaplanan aşağı akış verimi tahminini (saniyede kilobit 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 ByteArray<Byte>!

Bu işlev 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(
    url: String!,
    callback: UrlRequest.Callback!,
    executor: Executor!
)

UrlRequest için bir derleyici oluşturur.

abstract URLConnection!

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

Unit

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

Unit

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

Unit

Verim dinleyicisini kaldırır.

abstract Unit

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

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

NetLog kaydını, sınırlı boyuta sahip belirtilen bir dizine başlatır.

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

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

abstract Unit

NetLog kaydını durdurur ve dosyayı diske boşaltır.

Sabitler

ACTIVE_REQUEST_COUNT_UNKNOWN

const val ACTIVE_REQUEST_COUNT_UNKNOWN = -1: Int

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

CONNECTION_METRIC_UNKNOWN

const val CONNECTION_METRIC_UNKNOWN = -1: Int

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

EFFECTIVE_CONNECTION_TYPE_2G

const val EFFECTIVE_CONNECTION_TYPE_2G = 3: Int

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

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

EFFECTIVE_CONNECTION_TYPE_3G

const val EFFECTIVE_CONNECTION_TYPE_3G = 4: Int

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

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

EFFECTIVE_CONNECTION_TYPE_4G

const val EFFECTIVE_CONNECTION_TYPE_4G = 5: Int

Geçerli bağlantı türünün tahmini 4G'dir.

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

EFFECTIVE_CONNECTION_TYPE_OFFLINE

const val EFFECTIVE_CONNECTION_TYPE_OFFLINE = 1: Int

Cihaz çevrimdışı.

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

EFFECTIVE_CONNECTION_TYPE_SLOW_2G

const val EFFECTIVE_CONNECTION_TYPE_SLOW_2G = 2: Int

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

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

EFFECTIVE_CONNECTION_TYPE_UNKNOWN

const val EFFECTIVE_CONNECTION_TYPE_UNKNOWN = 0: Int

Etkili bağlantı türü tahmini bilinmiyor.

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

UNBIND_NETWORK_HANDLE

const val UNBIND_NETWORK_HANDLE = -1: Long

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

Herkese açık yapıcılar

CronetEngine

CronetEngine()

Herkese açık işlevler

addRequestFinishedListener

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

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

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

Parametreler
listener: RequestFinishedInfo.Listener!

Tamamlanan istekler için dinleyici.

addRttListener

fun addRttListener(listener: NetworkQualityRttListener!): Unit

Ağ kalitesi tahmin aracı, örnek gidiş dönüş süresine tanık olduğunda her seferinde çağrılan bir dinleyici kaydeder. Bu, enableNetworkQualityEstimator sonrasında ç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
listener: NetworkQualityRttListener!

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

addThroughputListener

fun addThroughputListener(listener: NetworkQualityThroughputListener!): Unit

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. İş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
listener: NetworkQualityThroughputListener!

işleme hızı işleyicisi

bindToNetwork

fun bindToNetwork(networkHandle: Long): Unit

Motoru belirtilen ağ tanıtıcısına bağlar. Bu motor aracılığıyla oluşturulan tüm isteklerde bu herkese açık kullanıcı adıyla ilişkili ağ kullanılır. Bu ağın bağlantısı kesilirse tüm istekler başarısız olur. Hatanın tam olarak ne olduğu, ağın 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
networkHandle: Long

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

configureNetworkQualityEstimatorForTesting

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

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
useLocalHostRequests: Boolean

Tahminlere localhost isteklerini dahil etme

useSmallerResponses: Boolean

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

disableOfflineCheck: Boolean

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

createURLStreamHandlerFactory

abstract fun createURLStreamHandlerFactory(): URLStreamHandlerFactory!

HTTP ve HTTPS trafiğini işlemek için 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 içerir:

İadeler
URLStreamHandlerFactory!

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

getActiveRequestCount

fun getActiveRequestCount(): Int

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 devre dışı kalır ve gelecekte ek geri aramalar tetiklenemez. Pratikte 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

fun getDownstreamThroughputKbps(): Int

Ağ kalitesi tahmincisi tarafından hesaplanan aşağı akış verimi tahminini (saniyede kilobit cinsinden) döndürür. Değer kullanılamıyorsa CONNECTION_METRIC_UNKNOWN olarak ayarlayın. Bu yöntem, enableNetworkQualityEstimator yönteminden sonra çağrılmalıdır. Aksi takdirde hata verir.

İadeler
Int

Saniye başına kilobit cinsinden aşağı akış verimi tahmini.

getEffectiveConnectionType

fun getEffectiveConnectionType(): Int

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

abstract fun getGlobalMetricsDeltas(): ByteArray<Byte>!

getHttpRttMs

fun getHttpRttMs(): Int

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 yöntem, enableNetworkQualityEstimator sonrasında çağrılmalıdır. Aksi takdirde istisna oluşturur.

İadeler
Int

Milisaniye cinsinden HTTP RTT tahmini.

getTransportRttMs

fun getTransportRttMs(): Int

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 yöntem, enableNetworkQualityEstimator sonrasında çağrılmalıdır. Aksi takdirde istisna oluşturur.

İadeler
Int

Milisaniye cinsinden aktarım RTT tahmini.

getVersionString

abstract fun getVersionString(): String!
İadeler
String!

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

newUrlRequestBuilder

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

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'u çağıran iş parçacığında görev çalıştırmamalıdır.

Parametreler
url: String!

Oluşturulan isteklerin URL'si.

callback: UrlRequest.Callback!

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

executor: Executor!

Tüm geri çağırmaların çağrılacağı Executor.

openConnection

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

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

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

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

Parametreler
listener: RequestFinishedInfo.Listener!

Kaldırılacak dinleyiciyi seçin.

removeRttListener

fun removeRttListener(listener: NetworkQualityRttListener!): Unit

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 işlev çağrılmalıdır.

Parametreler
listener: NetworkQualityRttListener!

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

removeThroughputListener

fun removeThroughputListener(listener: NetworkQualityThroughputListener!): Unit

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
listener: NetworkQualityThroughputListener!

işleme hızı işleyicisi

shutdown

abstract fun shutdown(): Unit

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

Ağ iş parçacığında çağrılamaz. 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

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

NetLog kaydını, sınırlı boyuta sahip belirtilen bir dizine 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üğe kaydetme 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 gidilerek Chrome Tarayıcı kullanılarak görüntülenebilir.

Parametreler
dirPath: String!

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.

logAll: Boolean

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 yalnızca temel etkinlikleri dahil etmek için.

maxSize: Int

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

startNetLogToFile

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

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
fileName: String!

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

logAll: Boolean

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 yalnızca temel etkinlikleri dahil etmek için.

stopNetLog

abstract fun stopNetLog(): Unit

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