CronetEngine

abstract class CronetEngine

מחלקות משנה ישירות ידועות
תת-מחלקות עקיפות מוכרות
JavaCronetEngine

‫java.net.HttpURLConnection CronetEngine מגובה.


מנוע לעיבוד UrlRequest, שמשתמש במערך ה-HTTP הכי טוב שזמין בפלטפורמה הנוכחית. אפשר ליצור מופע של המחלקה הזו באמצעות Builder.

סיכום

סוגי רכיבים שהוצבו בתוך רכיבים אחרים

‫Builder של CronetEngine, שמאפשר הגדרה של CronetEngine בזמן ריצה.

הכיתה הזו הוצאה משימוש.

השיטה System.loadLibrary לא הייתה אמינה ב-minSDK <= 23, והשתמשנו בה כדי לספק טוענים חלופיים ואמינים יותר.

ערכים קבועים

const Int

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

const Int

הערך של מדד החיבור לא ידוע.

const Int

החיבור האפקטיבי המשוער הוא 2G.

const Int

ההערכה של סוג החיבור האפקטיבי היא 3G.

const Int

הסוג המשוער של החיבור האפקטיבי הוא 4G.

const Int

המכשיר במצב אופליין.

const Int

ההערכה של סוג החיבור בפועל היא 2G איטי.

const Int

אומדן סוג החיבור בפועל לא ידוע.

const Long

הערך שישמש לביטול כל קשירת רשת קודמת.

‫constructors ציבוריים

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

Unit

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

Unit

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

Unit

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

Unit
bindToNetwork(networkHandle: Long)

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

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

הגדרת כלי להערכת איכות הרשת לצורך בדיקה.

abstract URLStreamHandlerFactory!

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

Int

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

Int

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

Int

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

abstract ByteArray<Byte>!

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

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

Int

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

Int

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

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

יוצרת builder של UrlRequest.

abstract URLConnection!

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

Unit

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

Unit

מסיר מאזין של זמני הלוך ושוב אם הוא נרשם בעבר ב-addRttListener.

Unit

מסירה פונקציית listener של קצב העברת נתונים.

abstract Unit

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

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

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

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

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

abstract Unit

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

ערכים קבועים

ACTIVE_REQUEST_COUNT_UNKNOWN

const val ACTIVE_REQUEST_COUNT_UNKNOWN = -1: Int

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

CONNECTION_METRIC_UNKNOWN

const val CONNECTION_METRIC_UNKNOWN = -1: Int

הערך של מדד החיבור לא ידוע.

EFFECTIVE_CONNECTION_TYPE_2G

const val EFFECTIVE_CONNECTION_TYPE_2G = 3: Int

החיבור האפקטיבי המשוער הוא 2G.

עוד באותו הקשר
getEffectiveConnectionType

EFFECTIVE_CONNECTION_TYPE_3G

const val EFFECTIVE_CONNECTION_TYPE_3G = 4: Int

ההערכה של סוג החיבור האפקטיבי היא 3G.

עוד באותו הקשר
getEffectiveConnectionType

EFFECTIVE_CONNECTION_TYPE_4G

const val EFFECTIVE_CONNECTION_TYPE_4G = 5: Int

הסוג המשוער של החיבור האפקטיבי הוא 4G.

עוד באותו הקשר
getEffectiveConnectionType

EFFECTIVE_CONNECTION_TYPE_OFFLINE

const val EFFECTIVE_CONNECTION_TYPE_OFFLINE = 1: Int

המכשיר במצב אופליין.

עוד באותו הקשר
getEffectiveConnectionType

EFFECTIVE_CONNECTION_TYPE_SLOW_2G

const val EFFECTIVE_CONNECTION_TYPE_SLOW_2G = 2: Int

ההערכה של סוג החיבור בפועל היא 2G איטי.

עוד באותו הקשר
getEffectiveConnectionType

EFFECTIVE_CONNECTION_TYPE_UNKNOWN

const val EFFECTIVE_CONNECTION_TYPE_UNKNOWN = 0: Int

הערכה של סוג החיבור בפועל לא ידועה.

עוד באותו הקשר
getEffectiveConnectionType

UNBIND_NETWORK_HANDLE

const val UNBIND_NETWORK_HANDLE = -1: Long

הערך שישמש לביטול כל קשירת רשת קודמת.

‫constructors ציבוריים

CronetEngine

CronetEngine()

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

addRequestFinishedListener

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

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

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

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

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

addRttListener

fun addRttListener(listener: NetworkQualityRttListener!): Unit

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

פרמטרים
listener: NetworkQualityRttListener!

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

addThroughputListener

fun addThroughputListener(listener: NetworkQualityThroughputListener!): Unit

רושמת מאזין שמופעל בכל פעם שהמערכת להערכת איכות הרשת מזהה מדידה של קצב העברת נתונים לדוגמה. צריך להפעיל את הפונקציה הזו אחרי enableNetworkQualityEstimator. התפוקה מחושבת על ידי מדידת הבייטים שנקראו בממשק הרשת הפעיל בזמנים שבהם מתקבלת לפחות תגובה אחת של כתובת URL. הפונקציה listener נקראת ב-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, בדיקות האופליין של המכשיר מושבתות בזמן חישוב סוג החיבור האפקטיבי או בזמן כתיבת ההעדפות.

createURLStreamHandlerFactory

abstract 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

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

החזרות
Int

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

getEffectiveConnectionType

fun getEffectiveConnectionType(): Int

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

החזרות
Int

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

getGlobalMetricsDeltas

abstract 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

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

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

newUrlRequestBuilder

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

יוצרת builder של UrlRequest. כל הקריאות החוזרות לאובייקטים שנוצרו UrlRequest יופעלו בשרשורים של executor. ‫executor אסור להפעיל משימות בשרשור שקורא ל-execute כדי למנוע חסימה של פעולות ברשת וגרימה לחריגים במהלך כיבוי.

פרמטרים
url: String!

כתובת ה-URL של הבקשות שנוצרו.

callback: UrlRequest.Callback!

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

executor: Executor!

‫Executor שבו יופעלו כל הפונקציות של ה-callback.

openConnection

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

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

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

פרמטרים
url: URL!

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

החזרות
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

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

פרמטרים
listener: NetworkQualityThroughputListener!

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

השבתה

abstract fun shutdown(): Unit

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

אי אפשר לקרוא ל-Cronet בשרשור של הרשת – השרשור ש-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

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

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

פרמטרים
fileName: String!

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

logAll: Boolean

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

stopNetLog

abstract fun stopNetLog(): Unit

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