CronetEngine.Builder

public class CronetEngine.Builder


‫Builder של CronetEngine, שמאפשר הגדרה של CronetEngine בזמן ריצה. אפשרויות ההגדרה מוגדרות ב-builder ואז מתבצעת קריאה ל-build כדי ליצור את CronetEngine.

סיכום

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

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

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

ערכים קבועים

static final int

הגדרה להשבתת מטמון HTTP.

static final int

הגדרה להפעלת מטמון בדיסק, כולל נתוני HTTP.

static final int

הגדרה להפעלת מטמון בדיסק, לא כולל נתוני HTTP.

static final int

הגדרה להפעלת מטמון HTTP בזיכרון, כולל נתוני HTTP.

שדות מוגנים

JSONObject

ייצוג ב-JSON של האפשרויות הניסיוניות.

‫constructors ציבוריים

Builder(Context context)

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

‫methods ציבוריים

CronetEngine.Builder
addPublicKeyPins(
    String hostName,
    Set<byte[]> pinsSha256,
    boolean includeSubdomains,
    Date expirationDate
)

הצמדה של קבוצת מפתחות ציבוריים למארח נתון.

CronetEngine.Builder
addQuicHint(String host, int port, int alternatePort)

הוספנו רמז לכך ש-host תומך ב-QUIC.

CronetEngine

בניית CronetEngine באמצעות ההגדרה של ה-builder הזה.

CronetEngine.Builder
enableBrotli(boolean value)

קובעת אם הדחיסה Brotli מופעלת.

CronetEngine.Builder
enableHttp2(boolean value)

ההגדרה הזו קובעת אם הפרוטוקול HTTP/2 מופעל.

CronetEngine.Builder
enableHttpCache(int cacheMode, long maxSize)

הפעלה או השבתה של שמירת נתונים במטמון של HTTP ומידע אחר, כמו פרטי שרת QUIC.

CronetEngine.Builder

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

CronetEngine.Builder

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

CronetEngine.Builder
enableQuic(boolean value)

המדיניות הזו קובעת אם פרוטוקול QUIC מופעל.

String

יוצר מחרוזת User-Agent שכוללת את שם האפליקציה והגרסה שלה, את גרסת ה-build של המערכת, את המודל והמזהה ואת גרסת Cronet.

CronetEngine.Builder
CronetEngine.Builder

הגדרת אופן הפעולה של העברת חיבורים.

CronetEngine.Builder

ההגדרה קובעת את אופן הפעולה של חיפוש שם המארח.

CronetEngine.Builder
CronetEngine.Builder

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

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

CronetEngine.Builder

ההגדרה קובעת את התנהגות שרת ה-Proxy.

CronetEngine.Builder
CronetEngine.Builder

הגדרה של אופן הפעולה של Cronet כשמשתמשים ב-QUIC.

CronetEngine.Builder

מגדירה את הספרייה לאחסון מטמון HTTP וקובצי Cookie.

CronetEngine.Builder
setThreadPriority(int priority)

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

בגרסאות מודרניות של Cronet, השיטה הזו לא עושה כלום.

CronetEngine.Builder
setUserAgent(String userAgent)

מחליף את כותרת סוכן המשתמש לכל הבקשות.

ערכים קבועים

HTTP_CACHE_DISABLED

public static final int HTTP_CACHE_DISABLED = 0

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

HTTP_CACHE_DISK

public static final int HTTP_CACHE_DISK = 3

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

HTTP_CACHE_DISK_NO_HTTP

public static final int HTTP_CACHE_DISK_NO_HTTP = 2

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

HTTP_CACHE_IN_MEMORY

public static final int HTTP_CACHE_IN_MEMORY = 1

הגדרה להפעלת מטמון HTTP בזיכרון, כולל נתוני HTTP. הועבר אל enableHttpCache.

שדות מוגנים

mParsedExperimentalOptions

protected JSONObject mParsedExperimentalOptions

ייצוג ב-JSON של האפשרויות הניסיוניות.

‫constructors ציבוריים

בנאי

public Builder(Context context)

בונה אובייקט Builder שמקל על יצירת CronetEngine. בהגדרות האישיות שקובעים כברירת מחדל, פרוטוקולים HTTP/2 ו-QUIC מופעלים, אבל מטמון ה-HTTP מושבת.

פרמטרים
Context context

‫Android Context, שמשמש את Builder לאחזור הקשר האפליקציה. תישמר הפניה רק להקשר של האפליקציה, כדי למנוע הארכה מיותרת של משך החיים של context.

‫methods ציבוריים

addPublicKeyPins

public CronetEngine.Builder addPublicKeyPins(
    String hostName,
    Set<byte[]> pinsSha256,
    boolean includeSubdomains,
    Date expirationDate
)

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

אם מפעילים את ה-method הזו כמה פעמים עם אותו שם מארח, ההצמדות שהוגדרו קודם למארח מוחלפות.

מידע נוסף על הצמדת מפתח ציבורי זמין ב-RFC 7469.

פרמטרים
String hostName

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

Set<byte[]> pinsSha256

קבוצה של סיכות. כל פין הוא גיבוב קריפטוגרפי SHA-256 של ייצוג ASN.1 עם קידוד DER של פרטי המפתח הציבורי של הנושא (SPKI) באישור X.509 של המארח. משתמשים ב-Certificate.getPublicKey() וב-Key.getEncoded() כדי לקבל ייצוג של SPKI בפורמט ASN.1 עם קידוד DER. למרות שהשיטה לא מחייבת להזין את קוד ה-PIN לגיבוי שאפשר להשתמש בו אם איבדתם את השליטה במפתח הפרטי הראשי, מומלץ מאוד להזין אותו.

boolean includeSubdomains

מציין אם מדיניות ההצמדה צריכה לחול על תת-דומיינים של hostName.

Date expirationDate

מציין את תאריך התפוגה של הפינים.

החזרות
CronetEngine.Builder

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

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

אם אחד מפרמטרי הקלט הוא null.

java.lang.IllegalArgumentException

אם שם המארח שצוין לא תקין או אם pinsSha256 מכיל מערך בייטים שלא מייצג גיבוב (hash) תקין באלגוריתם SHA-256.

addQuicHint

public CronetEngine.Builder addQuicHint(String host, int port, int alternatePort)

הוספנו רמז לכך ש-host תומך ב-QUIC. שימו לב: צריך להשתמש ב-enableHttpCache (HTTP_CACHE_DISK) כדי ליהנות מיתרון ההתחברות בין סשנים ללא זמן הקמה (0-RTT).

פרמטרים
String host

שם המארח של השרת שתומך ב-QUIC.

int port

המארח של השרת שתומך ב-QUIC.

int alternatePort

יציאה חלופית לשימוש בפרוטוקול QUIC.

החזרות
CronetEngine.Builder

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

לבנות גרסת build

public CronetEngine build()

בניית CronetEngine באמצעות ההגדרה של ה-builder הזה.

החזרות
CronetEngine

נבנה ב-CronetEngine.

enableBrotli

public CronetEngine.Builder enableBrotli(boolean value)

קובעת אם הדחיסה Brotli מופעלת. אם ההגדרה הזו מופעלת, המערכת תפרסם את Brotli בכותרות הבקשה Accept-Encoding. ברירת המחדל היא השבתה.

פרמטרים
boolean value

‫true כדי להפעיל את Brotli, ‏ false כדי להשבית.

החזרות
CronetEngine.Builder

הכלי ליצירת שרשורים.

enableHttp2

public CronetEngine.Builder enableHttp2(boolean value)

ההגדרה הזו קובעת אם הפרוטוקול HTTP/2 מופעל. ברירת המחדל היא enabled.

פרמטרים
boolean value

‫true כדי להפעיל את HTTP/2, ‏ false כדי להשבית.

החזרות
CronetEngine.Builder

הכלי ליצירת שרשורים.

enableHttpCache

public CronetEngine.Builder enableHttpCache(int cacheMode, long maxSize)

הפעלה או השבתה של שמירת נתונים במטמון של HTTP ומידע אחר, כמו פרטי שרת QUIC.

פרמטרים
int cacheMode

לשלוט במיקום ובסוג של הנתונים שנשמרים במטמון. הערך חייב להיות אחד מהערכים הבאים: HTTP_CACHE_*.

long maxSize

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

החזרות
CronetEngine.Builder

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

enableNetworkQualityEstimator

public CronetEngine.Builder enableNetworkQualityEstimator(boolean value)

ההגדרה הזו מפעילה את כלי ההערכה של איכות הרשת, שאוסף ומדווח על מדידות של זמן הלוך ושוב (RTT) ושל קצב העברת הנתונים במורד הזרם בשכבות שונות של מחסנית הרשת. אחרי שמפעילים את כלי ההערכה, אפשר להוסיף מאזינים של RTT ושל קצב העברת נתונים באמצעות addRttListener ו-addThroughputListener, ולהסיר אותם באמצעות removeRttListener ו-removeThroughputListener. הכלי להערכת נפח הזיכרון והמעבד משתמש בזיכרון ובמעבד רק כשהוא מופעל.

פרמטרים
boolean value

‫true כדי להפעיל את כלי ההערכה של איכות הרשת, false כדי להשבית אותו.

החזרות
CronetEngine.Builder

הכלי ליצירת שרשורים.

enablePublicKeyPinningBypassForLocalTrustAnchors

public CronetEngine.Builder enablePublicKeyPinningBypassForLocalTrustAnchors(boolean value)

ההגדרה הזו מפעילה או משביתה את העקיפה של הצמדת מפתחות ציבוריים לישויות עוגן אמינות מקומיות. לא מומלץ להשבית את העקיפה של ישויות עוגן אמינות מקומיות, כי היא עלולה למנוע מהאפליקציה לתקשר עם המארחים המוצמדים. לדוגמה, משתמש יכול לשלוח את כלל התנועה דרך שרת proxy עם SSL על ידי שינוי הגדרות לשרת proxy במכשיר והוספת אישור ה-proxy לרשימת ישויות עוגן אמינות מקומיות. אם משביתים את העקיפה, סביר להניח שהאפליקציה לא תוכל לשלוח תעבורה למארחים המוצמדים. מידע נוסף זמין במאמר 'איך הצמדת מפתחות פועלת עם פרוקסי ומסננים מקומיים?' בכתובת https://www.chromium.org/Home/chromium-security/security-faq

פרמטרים
boolean value

‫true כדי להפעיל את העקיפה, false כדי להשבית אותה.

החזרות
CronetEngine.Builder

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

enableQuic

public CronetEngine.Builder enableQuic(boolean value)

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

פרמטרים
boolean value

‫true כדי להפעיל את QUIC, ‏ false כדי להשבית אותו.

החזרות
CronetEngine.Builder

הכלי ליצירת שרשורים.

getDefaultUserAgent

public String getDefaultUserAgent()

יוצר מחרוזת User-Agent שכוללת את שם האפליקציה והגרסה שלה, את גרסת ה-build של המערכת, את המודל והמזהה ואת גרסת Cronet.

החזרות
String

מחרוזת סוכן המשתמש.

setConnectionMigrationOptions

@ConnectionMigrationOptions.Experimental
public CronetEngine.Builder setConnectionMigrationOptions(
    ConnectionMigrationOptions.Builder connectionMigrationOptionsBuilder
)
עוד באותו הקשר
setConnectionMigrationOptions

setConnectionMigrationOptions

@ConnectionMigrationOptions.Experimental
public CronetEngine.Builder setConnectionMigrationOptions(
    ConnectionMigrationOptions connectionMigrationOptions
)

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

ההגדרה רלוונטית רק אם האפשרות enableQuic מופעלת.

החזרות
CronetEngine.Builder

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

setDnsOptions

@DnsOptions.Experimental
public CronetEngine.Builder setDnsOptions(DnsOptions dnsOptions)

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

ההגדרה רלוונטית רק אם האפשרות enableQuic מופעלת.

החזרות
CronetEngine.Builder

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

setDnsOptions

@DnsOptions.Experimental
public CronetEngine.Builder setDnsOptions(DnsOptions.Builder dnsOptions)
עוד באותו הקשר
setDnsOptions

setLibraryLoader

public CronetEngine.Builder setLibraryLoader(CronetEngine.Builder.LibraryLoader loader)

מגדירה LibraryLoader שישמש לטעינת ספריית Native. אם לא מגדירים את המדיניות, הספרייה תיטען באמצעות loadLibrary.

פרמטרים
CronetEngine.Builder.LibraryLoader loader

‫LibraryLoader ישמש לטעינת ספריית Native.

החזרות
CronetEngine.Builder

הכלי ליצירת שרשורים.

setProxyOptions

public CronetEngine.Builder setProxyOptions(@NonNull ProxyOptions proxyOptions)

ההגדרה קובעת את התנהגות ה-proxy. ההגדרה הזו משפיעה בדרכים שונות על הקמת חיבורים, על UrlRequest ועל BidirectionalStream. פרטים נוספים מופיעים במסמכי התיעוד של Proxy.

לא להתבלבל עם הגדרות proxy שהוגדרו על ידי: המשתמש, הגדרות פרופיל ארגוניות או (ברוב המקרים) הגדרות רשת אוטומטיות (למשל, Web Proxy Auto-Discovery Protocol). ההגדרה הזו נקראת בדרך כלל הגדרת proxy של המערכת. אם הוא קיים, בדרך כלל נדרש לכבד את הגדרת ה-proxy של המערכת כדי לקבל קישוריות מקומית ו/או קישוריות לאינטרנט. ‫CronetEngine כבר מטפל בהגדרת שרת ה-proxy של המערכת באופן פנימי.

הגדרות proxy שמוגדרות באמצעות ה-API הזה נקראות הגדרות proxy של האפליקציה. ההגדרות של שרת ה-Proxy באפליקציה ושל שרת ה-Proxy במערכת הן נפרדות, והכי חשוב, הן שונות. נכון לעכשיו, הגדרות ה-Proxy של האפליקציה והמערכת הן בלעדיות: אם מציינים את ProxyOptions, הוא מבטל את הגדרת ה-Proxy של המערכת, אם היא קיימת. זה עלול לגרום לבעיות בקישוריות בתרחישים מסוימים שבהם קיימת הגדרת proxy של המערכת. בתרחישים כאלה, יכול להיות שלמשתמשים לא תהיה גישה לאינטרנט, אלא אם ProxyOptions הוגדר עם גיבוי סופי, null. אפשר לעיין בProxyOptionsמאמרי העזרה.

פרמטרים
@NonNull ProxyOptions proxyOptions

אפשרויות proxy לשימוש ב-UrlRequest, ב-BiridirectionalStream ובחיבורים שנוצרו על ידי CronetEngine שנוצר על ידי ה-builder הזה.

החזרות
CronetEngine.Builder

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

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

אם ההטמעה של Cronet שנמצאת בשימוש ישנה מדי ולא תומכת ב-ProxyOptions.

setQuicOptions

@QuicOptions.Experimental
public CronetEngine.Builder setQuicOptions(QuicOptions.Builder quicOptionsBuilder)
עוד באותו הקשר
setQuicOptions

setQuicOptions

@QuicOptions.Experimental
public CronetEngine.Builder setQuicOptions(QuicOptions quicOptions)

הגדרה של אופן הפעולה של Cronet כשמשתמשים ב-QUIC. פרטים נוספים זמינים במסמכי התיעוד של QuicOptions ובמאמרים על השיטות השונות של QuicOptions.Builder.

ההגדרה רלוונטית רק אם האפשרות enableQuic מופעלת.

החזרות
CronetEngine.Builder

הכלי ליצירת שרשורים.

setStoragePath

public CronetEngine.Builder setStoragePath(String value)

מגדירה את הספרייה לאחסון מטמון HTTP וקובצי Cookie. הספרייה חייבת להתקיים.

הערה: אל תשתמשו באותה תיקיית אחסון עם יותר מ- CronetEngine אחד בכל פעם. הגישה לספריית האחסון לא תומכת בגישה בו-זמנית של כמה CronetEngine.

פרמטרים
String value

נתיב לספרייה קיימת.

החזרות
CronetEngine.Builder

הכלי ליצירת שרשורים.

setThreadPriority

public CronetEngine.Builder setThreadPriority(int priority)

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

פרמטרים
int priority

העדיפות של השרשור הפנימי של Cronet. רמת עדיפות ב-Linux, מ-‎-20 לעדיפות התזמון הגבוהה ביותר ועד 19 לעדיפות התזמון הנמוכה ביותר. מידע נוסף על ערכים זמין במאמרים בנושא ערכי setThreadPriority וערכי THREAD_PRIORITY_*.

החזרות
CronetEngine.Builder

הכלי ליצירת שרשורים.

setUserAgent

public CronetEngine.Builder setUserAgent(String userAgent)

מחליף את כותרת סוכן המשתמש לכל הבקשות. כותרת User-Agent שהוגדרה באופן מפורש (הוגדרה באמצעות addHeader) תבטל ערך שהוגדר באמצעות הפונקציה הזו.

פרמטרים
String userAgent

מחרוזת סוכן המשתמש שתשמש לכל הבקשות.

החזרות
CronetEngine.Builder

הכלי ליצירת שרשורים.