JavaCronetEngine

public final class JavaCronetEngine extends CronetEngineBase


java.net.HttpURLConnection backed CronetEngine.

אין תמיכה ב-netlogs, במדידת נתונים שהועברו, ב-bidistream, במטמון או בעדיפות.

סיכום

‫constructors ציבוריים

‫methods ציבוריים

void

רושם מאזין שמופעל אחרי סיום כל בקשה עם פרטי הבקשה.

void

רושמת מאזין שמופעל בכל פעם שהכלי להערכת איכות הרשת מזהה זמן הלוך ושוב לדוגמה.

void

רושמת מאזין שמופעל בכל פעם שהמערכת להערכת איכות הרשת מזהה מדידה של קצב העברת נתונים לדוגמה.

void
bindToNetwork(long networkHandle)

קושר את המנוע לטיפול ברשת שצוין.

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

הגדרת אומדן איכות הרשת לבדיקה.

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

יוצר URLStreamHandlerFactory לטיפול בתנועת HTTP ו-HTTPS.

int

הפונקציה מחזירה את מספר הבקשות הפעילות.

int

הפונקציה מחזירה את האומדן של קצב העברת הנתונים (בקילובייט לשנייה) שחושב על ידי כלי ההערכה של איכות הרשת.

int

הפונקציה מחזירה אומדן של סוג החיבור האפקטיבי שחושב על ידי כלי האומדן של איכות הרשת.

byte[]

השיטה הזו הוצאה משימוש.

בגרסאות מודרניות של Cronet, הפונקציה הזו תמיד תחזיר מערך ריק.

int

הפונקציה מחזירה את האומדן של זמן הלוך ושוב (RTT) של HTTP (באלפיות השנייה) שחושב על ידי כלי ההערכה של איכות הרשת.

int

הפונקציה מחזירה את האומדן של זמן הלוך ושוב (RTT) של התעבורה (באלפיות השנייה) שחושב על ידי כלי ההערכה של איכות הרשת.

String
URLConnection

יוצר חיבור חדש למשאב שצוין על ידי URLurl.

URLConnection
openConnection(URL url, Proxy proxy)

יוצר חיבור חדש למשאב שצוין על ידי URLurl באמצעות ה-proxy שצוין.

void

הסרה של מאזין בקשות שהסתיימו.

void

מסיר מאזין של זמני הלוך ושוב אם הוא נרשם קודם באמצעות addRttListener.

void

מסירה מאזין של קצב העברת הנתונים.

void

הפונקציה משביתה את CronetEngine אם אין בקשות פעילות, אחרת היא מחזירה חריגה.

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

מתחיל רישום ביומן NetLog בספרייה שצוינה עם גודל מוגבל.

void
startNetLogToFile(String fileName, boolean logAll)

מתחיל רישום ביומן NetLog לקובץ.

void

מפסיקה את הרישום ביומן NetLog ומרוקנת את הקובץ לדיסק.

שיטות מוגנות

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
)

Inherited Constants

מ-org.chromium.net.CronetEngine
static final int

הערך של מספר הבקשות הפעילות לא ידוע

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

‫methods שעברו בירושה

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

יוצרת builder של UrlRequest.

‫constructors ציבוריים

JavaCronetEngine

public JavaCronetEngine(CronetEngineBuilderImpl builder)

‫methods ציבוריים

addRequestFinishedListener

public void addRequestFinishedListener(RequestFinishedInfo.Listener listener)

רושם מאזין שמופעל אחרי סיום כל בקשה עם פרטי הבקשה.

השיחה למאזין מתבצעת במספר java.util.concurrent.Executor שסופק על ידי המאזין.

פרמטרים
RequestFinishedInfo.Listener listener

המאזין לבקשות שהושלמו.

addRttListener

public void addRttListener(NetworkQualityRttListener listener)

רושמת מאזין שמופעל בכל פעם שהכלי להערכת איכות הרשת מזהה זמן הלוך ושוב לדוגמה. חובה להפעיל את הפונקציה הזו אחרי enableNetworkQualityEstimator, אחרת תופעל חריגה. יכול להיות שזמני הלוך ושוב יתועדו בשכבות שונות של מחסנית הרשת, כולל TCP,‏ QUIC ובשכבת בקשת כתובת ה-URL. המאזין מקבל שיחה ב-java.util.concurrent.Executor שמועבר אל enableNetworkQualityEstimator.

פרמטרים
NetworkQualityRttListener listener

המאזין של זמני הלוך ושוב.

addThroughputListener

public void addThroughputListener(NetworkQualityThroughputListener listener)

רושמת מאזין שמופעל בכל פעם שהמערכת להערכת איכות הרשת מזהה מדידה של קצב העברת נתונים לדוגמה. חובה להפעיל את הפונקציה הזו אחרי enableNetworkQualityEstimator. התפוקה מחושבת על ידי מדידת בייטים שנקראו בממשק הרשת הפעיל בזמנים שבהם מתקבלת תגובה של כתובת URL אחת לפחות. המאזין מקבל שיחה ב-java.util.concurrent.Executor שמועבר אל enableNetworkQualityEstimator.

פרמטרים
NetworkQualityThroughputListener listener

המאזין של התפוקה.

bindToNetwork

public void bindToNetwork(long networkHandle)

קושר את המנוע לטיפול ברשת שצוין. כל הבקשות שנוצרו דרך המנוע הזה ישתמשו ברשת שמשויכת לכינוי הזה. אם הרשת הזו מתנתקת, כל הבקשות ייכשלו. השגיאה המדויקת תלויה בשלב העיבוד של הבקשה בזמן שהרשת מתנתקת. אפשר לקבל כינויים לרשת דרך Network#getNetworkHandle. התכונה זמינה רק החל מ-Android Marshmallow.

פרמטרים
long networkHandle

ה-handle של הרשת שאליה המנוע יקשר. מציינים את UNBIND_NETWORK_HANDLE כדי לבטל את הקישור.

configureNetworkQualityEstimatorForTesting

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

הגדרת אומדן איכות הרשת לבדיקה. צריך להפעיל את הפונקציה הזו לפני שמוסיפים את מאזיני הזמן הלוך ושוב ואת מאזיני קצב העברת הנתונים, ואחרי שמפעילים את כלי ההערכה של איכות הרשת.

פרמטרים
boolean useLocalHostRequests

לכלול בקשות ל-localhost בהערכות.

boolean useSmallerResponses

לכלול תשובות קצרות בהערכות של קצב העברת הנתונים.

boolean disableOfflineCheck

אם המדיניות מוגדרת כ-true, בדיקות האופליין של המכשיר מושבתות כשמחשבים את סוג החיבור האפקטיבי או כשכותבים את ההעדפות.

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()

יוצר URLStreamHandlerFactory לטיפול בתנועת HTTP ו-HTTPS. אפשר להתקין מופע של המחלקה הזו באמצעות setURLStreamHandlerFactory, וכך להשתמש ב-CronetEngine כברירת מחדל לכל הבקשות שנוצרו באמצעות openConnection.

‫Cronet לא משתמש בתכונות מסוימות של HTTP שזמינות דרך המערכת:

למרות ש-Cronet תומך בבקשות באמצעות פרוטוקול HTTPS ומעודד שימוש בו, הוא לא תומך ב-API של HttpsURLConnection. היעדר התמיכה כולל גם אי שימוש בתכונות מסוימות של HTTPS שזמינות דרך המערכת:

החזרות
URLStreamHandlerFactory

מופע URLStreamHandlerFactory שהוטמע על ידי CronetEngine.

getActiveRequestCount

public int getActiveRequestCount()

הפונקציה מחזירה את מספר הבקשות הפעילות.

בקשה הופכת ל'פעילה' ב-UrlRequest.start(), בהנחה שהשיטה הזו לא יוצרת חריגה. היא הופכת ללא פעילה כשכל הקריאות החוזרות (callback) מסתיימות ואי אפשר להפעיל קריאות חוזרות נוספות בעתיד. בפועל, המשמעות היא שהבקשה לא פעילה אחרי שהפונקציה onSucceeded/onCanceled/onFailed מחזירה ערך וכל מאזיני הבקשות סיימו להחזיר ערך. מידע נוסף זמין במאמר מחזור החיים של בקשות Cronet.

getDownstreamThroughputKbps

public int getDownstreamThroughputKbps()

הפונקציה מחזירה את האומדן של קצב העברת הנתונים (בקילובייט לשנייה) שחושב על ידי כלי ההערכה של איכות הרשת. אם הערך לא זמין, מגדירים את הערך CONNECTION_METRIC_UNKNOWN. חובה להפעיל את הפונקציה הזו אחרי enableNetworkQualityEstimator, אחרת תופעל חריגה.

החזרות
int

הערכה של קצב העברת הנתונים ב-downstream בקילובייט לשנייה.

getEffectiveConnectionType

public int getEffectiveConnectionType()

הפונקציה מחזירה אומדן של סוג החיבור האפקטיבי שחושב על ידי כלי האומדן של איכות הרשת. מתקשרים אל enableNetworkQualityEstimator כדי להתחיל לחשב את הערך הזה.

החזרות
int

סוג החיבור המשוער. הערך שמוחזר הוא אחד מהערכים הבאים: EFFECTIVE_CONNECTION_TYPE_* .

getGlobalMetricsDeltas

public byte[] getGlobalMetricsDeltas()

getHttpRttMs

public int getHttpRttMs()

הפונקציה מחזירה את האומדן של זמן הלוך ושוב (RTT) של HTTP (באלפיות השנייה) שחושב על ידי כלי ההערכה של איכות הרשת. אם הערך לא זמין, מגדירים את הערך CONNECTION_METRIC_UNKNOWN. חובה להפעיל את הפונקציה הזו אחרי enableNetworkQualityEstimator, אחרת תופעל חריגה.

החזרות
int

הערכה של זמן הלוך ושוב (RTT) של HTTP באלפיות השנייה.

getTransportRttMs

public int getTransportRttMs()

הפונקציה מחזירה את האומדן של זמן הלוך ושוב (RTT) של התעבורה (באלפיות השנייה) שחושב על ידי כלי ההערכה של איכות הרשת. אם הערך לא זמין, מגדירים את הערך CONNECTION_METRIC_UNKNOWN. חובה להפעיל את הפונקציה הזו אחרי enableNetworkQualityEstimator, אחרת תופעל חריגה.

החזרות
int

הערכה של זמן הלוך ושוב (RTT) של התעבורה באלפיות השנייה.

getVersionString

public String getVersionString()
החזרות
String

מחרוזת גרסה של המנוע שקריאה לבני אדם.

openConnection

public URLConnection openConnection(URL url)

יוצר חיבור חדש למשאב שצוין על ידי URLurl.

הערה: ההטמעה של Cronet‏ java.net.HttpURLConnection כפופה למגבלות מסוימות. פרטים נוספים זמינים במאמר createURLStreamHandlerFactory.

פרמטרים
URL url

כתובת ה-URL של המשאב להתחברות.

החזרות
URLConnection

מופע java.net.HttpURLConnection שהוטמע על ידי CronetEngine.

הקפצת הודעות שגיאה (throw)
java.io.IOException

אם מתרחשת שגיאה במהלך פתיחת החיבור.

openConnection

public URLConnection openConnection(URL url, Proxy proxy)

יוצר חיבור חדש למשאב שצוין על ידי URLurl באמצעות ה-proxy שצוין.

הערה: ההטמעה של Cronet‏ java.net.HttpURLConnection כפופה למגבלות מסוימות. פרטים נוספים זמינים במאמר createURLStreamHandlerFactory.

פרמטרים
URL url

כתובת ה-URL של המשאב להתחברות.

Proxy proxy

שרת ה-proxy שבו יש להשתמש ליצירת החיבור.

החזרות
URLConnection

מופע java.net.HttpURLConnection שהוטמע על ידי CronetEngine.

הקפצת הודעות שגיאה (throw)
java.io.IOException

אם מתרחשת שגיאה במהלך פתיחת החיבור.

removeRequestFinishedListener

public void removeRequestFinishedListener(RequestFinishedInfo.Listener listener)

הסרה של מאזין בקשות שהסתיימו.

פרמטרים
RequestFinishedInfo.Listener listener

את המאזין שרוצים להסיר.

removeRttListener

public void removeRttListener(NetworkQualityRttListener listener)

מסיר מאזין של זמני הלוך ושוב אם הוא נרשם קודם באמצעות addRttListener. צריך להפעיל את הפונקציה הזו אחרי שמוסיפים NetworkQualityRttListener כדי להפסיק לקבל תצפיות.

פרמטרים
NetworkQualityRttListener listener

המאזין של זמני הלוך ושוב.

removeThroughputListener

public void removeThroughputListener(NetworkQualityThroughputListener listener)

מסירה מאזין של קצב העברת הנתונים. צריך להפעיל את הפונקציה הזו אחרי שמוסיפים NetworkQualityThroughputListener באמצעות addThroughputListener כדי להפסיק לקבל תצפיות.

פרמטרים
NetworkQualityThroughputListener listener

המאזין של התפוקה.

השבתה

public void shutdown()

הפונקציה משביתה את CronetEngine אם אין בקשות פעילות, אחרת היא מחזירה חריגה.

אי אפשר לקרוא לשיטה הזו בשרשור של הרשת – השרשור ש-Cronet קורא ל-Executor (ששונה מהשרשור שבו Executor מפעיל קריאות חוזרות). יכול להיות שהפונקציה תיחסם עד שכל המשאבים של CronetEngine ינוקו.

startNetLogToDisk

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

מתחיל רישום ביומן NetLog בספרייה שצוינה עם גודל מוגבל. הקובץ NetLog יכיל אירועים שנשלחו מכל מנועי CronetEngine הפעילים. ה-NetLog שימושי לניפוי באגים. אחרי שהרישום יופסק stopNetLog, הנתונים ייכתבו בקובץ netlog.json ב-dirPath. אם הרישום ביומן מופסק, אפשר לחבר את הקבצים שנמצאים בספריית המשנה ‎ .inprogress באופן ידני באמצעות הקישור: https://chromium.googlesource.com/chromium/src/+/main/net/tools/stitch_net_log_files.py. אפשר לראות את היומן באמצעות דפדפן Chrome, כשעוברים אל chrome://net-internals/#import.

פרמטרים
String dirPath

הספרייה שבה ייצור קובץ netlog.json. הספרייה dirPath חייבת כבר להתקיים. אסור שיהיו קבצי NetLog בספרייה. אם הרישום ביומן פעיל, המערכת מתעלמת מהשיטה הזו.

boolean logAll

true כדי לכלול ביומן אירועים בסיסיים, קובצי Cookie של משתמשים, פרטי כניסה וכל הבייטים שהועברו. האפשרות הזו כרוכה בסיכון לפרטיות, כי היא חושפת את פרטי הכניסה של המשתמש. לכן, צריך להשתמש בה רק בהסכמת המשתמש ובמצבים שבהם היומן לא יהיה ציבורי. ‫false כדי לכלול רק אירועים בסיסיים.

int maxSize

הגודל הכולל המקסימלי של נפח האחסון בדיסק בבייטים שצריך לשמש את NetLog. השימוש בפועל בנפח האחסון בדיסק עשוי לחרוג מהמגבלה הזו במידה קלה.

startNetLogToFile

public void startNetLogToFile(String fileName, boolean logAll)

מתחיל רישום ביומן NetLog לקובץ. הקובץ NetLog יכיל אירועים שנשלחו מכל מנועי CronetEngine הפעילים. ה-NetLog שימושי לניפוי באגים. אפשר לצפות בקובץ באמצעות דפדפן Chrome, על ידי מעבר אל chrome://net-internals/#import

פרמטרים
String fileName

הנתיב המלא לקובץ. השדה לא יכול להיות ריק. אם הקובץ קיים, הוא נחתך לפני שמתחילים. אם הרישום ביומן פעיל, המערכת מתעלמת מהשיטה הזו.

boolean logAll

true כדי לכלול ביומן אירועים בסיסיים, קובצי Cookie של משתמשים, פרטי כניסה וכל הבייטים שהועברו. האפשרות הזו כרוכה בסיכון לפרטיות, כי היא חושפת את פרטי הכניסה של המשתמש. לכן, צריך להשתמש בה רק בהסכמת המשתמש ובמצבים שבהם היומן לא יהיה ציבורי. ‫false כדי לכלול רק אירועים בסיסיים.

stopNetLog

public void stopNetLog()

מפסיקה את הרישום ביומן NetLog ומרוקנת את הקובץ לדיסק. אם סשן הרישום ביומן לא מתבצע, המערכת מתעלמת מהקריאה הזו.

שיטות מוגנות

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
)