JavaCronetEngine

public final class JavaCronetEngine extends CronetEngineBase


java.net.HttpURLConnection, CronetEngine'i destekledi.

Netlog'ları, aktarılan veri ölçümünü, bidistream'i, önbelleği veya önceliği desteklemez.

Özet

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.

ExperimentalUrlRequest
createRequest(
    String url,
    UrlRequest.Callback callback,
    Executor executor,
    int priority,
    Collection<Object> connectionAnnotations,
    boolean disableCache,
    boolean disableConnectionMigration,
    boolean allowDirectExecutor,
    boolean trafficStatsTagSet,
    int trafficStatsTag,
    boolean trafficStatsUidSet,
    int trafficStatsUid,
    RequestFinishedInfo.Listener requestFinishedListener,
    int idempotency,
    long networkHandle,
    String method,
    ArrayList<Map.Entry<StringString>> requestHeaders,
    UploadDataProvider uploadDataProvider,
    Executor uploadDataProviderExecutor,
    byte[] sharedDictionaryHash,
    ByteBuffer sharedDictionary,
    @NonNull String sharedDictionaryId
)
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.

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.

String
URLConnection

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

URLConnection
openConnection(URL url, Proxy proxy)

Belirtilen proxy'yi kullanarak 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.

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.

void
startNetLogToFile(String fileName, boolean logAll)

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

void

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

Korunan yöntemler

ExperimentalBidirectionalStream
createBidirectionalStream(
    String url,
    BidirectionalStream.Callback callback,
    Executor executor,
    String httpMethod,
    List<Map.Entry<StringString>> requestHeaders,
    @CronetEngineBase.StreamPriority int priority,
    boolean delayRequestHeadersUntilFirstFlush,
    Collection<Object> connectionAnnotations,
    boolean trafficStatsTagSet,
    int trafficStatsTag,
    boolean trafficStatsUidSet,
    int trafficStatsUid,
    long networkHandle
)

Devralınan Sabitler

org.chromium.net.CronetEngine yönteminden
static final int

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

org.chromium.net.impl.CronetEngineBase
static final long

Devralınan yöntemler

org.chromium.net.impl.CronetEngineBase
ExperimentalUrlRequest.Builder
newUrlRequestBuilder(
    String url,
    UrlRequest.Callback callback,
    Executor executor
)

UrlRequest için bir derleyici oluşturur.

Herkese açık oluşturucular

JavaCronetEngine

public JavaCronetEngine(CronetEngineBuilderImpl builder)

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.

createRequest

public ExperimentalUrlRequest createRequest(
    String url,
    UrlRequest.Callback callback,
    Executor executor,
    int priority,
    Collection<Object> connectionAnnotations,
    boolean disableCache,
    boolean disableConnectionMigration,
    boolean allowDirectExecutor,
    boolean trafficStatsTagSet,
    int trafficStatsTag,
    boolean trafficStatsUidSet,
    int trafficStatsUid,
    RequestFinishedInfo.Listener requestFinishedListener,
    int idempotency,
    long networkHandle,
    String method,
    ArrayList<Map.Entry<StringString>> requestHeaders,
    UploadDataProvider uploadDataProvider,
    Executor uploadDataProviderExecutor,
    byte[] sharedDictionaryHash,
    ByteBuffer sharedDictionary,
    @NonNull String sharedDictionaryId
)

createURLStreamHandlerFactory

public 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 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 String getVersionString()
İadeler
String

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

openConnection

public 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

openConnection

public URLConnection openConnection(URL url, Proxy proxy)

Belirtilen proxy'yi kullanarak 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.

Proxy proxy

Bağlantı oluşturulurken kullanılacak proxy.

İ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 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 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 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.

Korunan yöntemler

createBidirectionalStream

protected ExperimentalBidirectionalStream createBidirectionalStream(
    String url,
    BidirectionalStream.Callback callback,
    Executor executor,
    String httpMethod,
    List<Map.Entry<StringString>> requestHeaders,
    @CronetEngineBase.StreamPriority int priority,
    boolean delayRequestHeadersUntilFirstFlush,
    Collection<Object> connectionAnnotations,
    boolean trafficStatsTagSet,
    int trafficStatsTag,
    boolean trafficStatsUidSet,
    int trafficStatsUid,
    long networkHandle
)