JavaCronetEngine

class JavaCronetEngine : CronetEngineBase


java.net.HttpURLConnection backed CronetEngine.

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

סיכום

‫constructors ציבוריים

פונקציות ציבוריות

Unit

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

Unit

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

Unit

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

Unit
bindToNetwork(networkHandle: Long)

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

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

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

ExperimentalUrlRequest!
createRequest(
    url: String!,
    callback: UrlRequest.Callback!,
    executor: Executor!,
    priority: Int,
    connectionAnnotations: (Mutable)Collection<Any!>!,
    disableCache: Boolean,
    disableConnectionMigration: Boolean,
    allowDirectExecutor: Boolean,
    trafficStatsTagSet: Boolean,
    trafficStatsTag: Int,
    trafficStatsUidSet: Boolean,
    trafficStatsUid: Int,
    requestFinishedListener: RequestFinishedInfo.Listener!,
    idempotency: Int,
    networkHandle: Long,
    method: String!,
    requestHeaders: ArrayList<(Mutable)Map.Entry<String!, String!>!>!,
    uploadDataProvider: UploadDataProvider!,
    uploadDataProviderExecutor: Executor!,
    sharedDictionaryHash: ByteArray!,
    sharedDictionary: ByteBuffer!,
    sharedDictionaryId: String
)
URLStreamHandlerFactory!

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

Int

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

Int

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

Int

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

ByteArray<Byte>!

הפונקציה הזו הוצאה משימוש.

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

Int

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

Int

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

String!
URLConnection!

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

URLConnection!
openConnection(url: URL!, proxy: Proxy!)

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

Unit

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

Unit

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

Unit

מסירה של listener של throughput.

Unit

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

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

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

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

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

Unit

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

פונקציות מוגנות

ExperimentalBidirectionalStream!
createBidirectionalStream(
    url: String!,
    callback: BidirectionalStream.Callback!,
    executor: Executor!,
    httpMethod: String!,
    requestHeaders: (Mutable)List<(Mutable)Map.Entry<String!, String!>!>!,
    @CronetEngineBase.StreamPriority priority: Int,
    delayRequestHeadersUntilFirstFlush: Boolean,
    connectionAnnotations: (Mutable)Collection<Any!>!,
    trafficStatsTagSet: Boolean,
    trafficStatsTag: Int,
    trafficStatsUidSet: Boolean,
    trafficStatsUid: Int,
    networkHandle: Long
)

Inherited Constants

מ-org.chromium.net.CronetEngine
const Int

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

מ-org.chromium.net.impl.CronetEngineBase

פונקציות שעברו בירושה

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

יוצרת builder של UrlRequest.

‫constructors ציבוריים

JavaCronetEngine

JavaCronetEngine(builder: CronetEngineBuilderImpl!)

פונקציות ציבוריות

addRequestFinishedListener

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

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

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

פרמטרים
listener: RequestFinishedInfo.Listener!

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

addRttListener

fun addRttListener(listener: NetworkQualityRttListener!): Unit

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

פרמטרים
listener: NetworkQualityRttListener!

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

addThroughputListener

fun addThroughputListener(listener: NetworkQualityThroughputListener!): Unit

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

פרמטרים
listener: NetworkQualityThroughputListener!

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

bindToNetwork

fun bindToNetwork(networkHandle: Long): Unit

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

פרמטרים
networkHandle: Long

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

configureNetworkQualityEstimatorForTesting

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

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

פרמטרים
useLocalHostRequests: Boolean

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

useSmallerResponses: Boolean

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

disableOfflineCheck: Boolean

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

createRequest

fun createRequest(
    url: String!,
    callback: UrlRequest.Callback!,
    executor: Executor!,
    priority: Int,
    connectionAnnotations: (Mutable)Collection<Any!>!,
    disableCache: Boolean,
    disableConnectionMigration: Boolean,
    allowDirectExecutor: Boolean,
    trafficStatsTagSet: Boolean,
    trafficStatsTag: Int,
    trafficStatsUidSet: Boolean,
    trafficStatsUid: Int,
    requestFinishedListener: RequestFinishedInfo.Listener!,
    idempotency: Int,
    networkHandle: Long,
    method: String!,
    requestHeaders: ArrayList<(Mutable)Map.Entry<String!, String!>!>!,
    uploadDataProvider: UploadDataProvider!,
    uploadDataProviderExecutor: Executor!,
    sharedDictionaryHash: ByteArray!,
    sharedDictionary: ByteBuffer!,
    sharedDictionaryId: String
): ExperimentalUrlRequest!

createURLStreamHandlerFactory

fun createURLStreamHandlerFactory(): URLStreamHandlerFactory!

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

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

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

החזרות
URLStreamHandlerFactory!

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

getActiveRequestCount

fun getActiveRequestCount(): Int

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

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

getDownstreamThroughputKbps

fun getDownstreamThroughputKbps(): Int

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

החזרות
Int

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

getEffectiveConnectionType

fun getEffectiveConnectionType(): Int

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

החזרות
Int

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

getGlobalMetricsDeltas

fun getGlobalMetricsDeltas(): ByteArray<Byte>!

getHttpRttMs

fun getHttpRttMs(): Int

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

החזרות
Int

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

getTransportRttMs

fun getTransportRttMs(): Int

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

החזרות
Int

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

getVersionString

fun getVersionString(): String!
החזרות
String!

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

openConnection

fun openConnection(url: URL!): URLConnection!

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

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

פרמטרים
url: URL!

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

החזרות
URLConnection!

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

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

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

openConnection

fun openConnection(url: URL!, proxy: Proxy!): URLConnection!

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

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

פרמטרים
url: URL!

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

proxy: Proxy!

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

החזרות
URLConnection!

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

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

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

removeRequestFinishedListener

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

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

פרמטרים
listener: RequestFinishedInfo.Listener!

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

removeRttListener

fun removeRttListener(listener: NetworkQualityRttListener!): Unit

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

פרמטרים
listener: NetworkQualityRttListener!

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

removeThroughputListener

fun removeThroughputListener(listener: NetworkQualityThroughputListener!): Unit

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

פרמטרים
listener: NetworkQualityThroughputListener!

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

השבתה

fun shutdown(): Unit

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

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

startNetLogToDisk

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

מתחיל רישום ביומן 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.

פרמטרים
dirPath: String!

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

logAll: Boolean

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

maxSize: Int

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

startNetLogToFile

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

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

פרמטרים
fileName: String!

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

logAll: Boolean

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

stopNetLog

fun stopNetLog(): Unit

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

פונקציות מוגנות

createBidirectionalStream

protected fun createBidirectionalStream(
    url: String!,
    callback: BidirectionalStream.Callback!,
    executor: Executor!,
    httpMethod: String!,
    requestHeaders: (Mutable)List<(Mutable)Map.Entry<String!, String!>!>!,
    @CronetEngineBase.StreamPriority priority: Int,
    delayRequestHeadersUntilFirstFlush: Boolean,
    connectionAnnotations: (Mutable)Collection<Any!>!,
    trafficStatsTagSet: Boolean,
    trafficStatsTag: Int,
    trafficStatsUidSet: Boolean,
    trafficStatsUid: Int,
    networkHandle: Long
): ExperimentalBidirectionalStream!