CronetEngine

abstract class CronetEngine

מחלקות משנה ישירות מוכרות
מחלקות משנה לא ישירות מוכרות

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

סיכום

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

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

מחלקת Cronet שמספקת שיטה לטעינת ספריית ה-Native.

ערכים קבועים

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

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

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

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

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

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

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

openConnection

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

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

הערה: ההטמעה של Cronet‏ java.net.HttpURLConnection כפופה למגבלות מסוימות. פרטים נוספים זמינים במאמר 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

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

פרמטרים
listener: NetworkQualityThroughputListener!

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

השבתה

abstract 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

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 ומרוקנת את הקובץ לדיסק. אם סשן הרישום ביומן לא מתבצע, המערכת מתעלמת מהקריאה הזו.