CronetEngine.Builder

public class CronetEngine.Builder


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

סיכום

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

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

ערכים קבועים

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

מגדירה LibraryLoader שישמש לטעינת ספריית Native.

CronetEngine.Builder

ההגדרה קובעת את אופן הפעולה של שרת proxy.

CronetEngine.Builder
CronetEngine.Builder

הגדרת ההתנהגות של Cronet כשמשתמשים ב-QUIC.

CronetEngine.Builder

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

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 בקידוד DER של ASN.1. למרות שהשיטה לא מחייבת להזין את קוד ה-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 מופעל. ברירת המחדל היא מופעל.

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

פרמטרים
boolean value

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

החזרות
CronetEngine.Builder

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

enableQuic

public CronetEngine.Builder enableQuic(boolean value)

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

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

פרמטרים
@NonNull ProxyOptions proxyOptions

‫ProxyOptions שישמשו עבור 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)

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

הערה: אל תשתמשו באותה ספריית אחסון עם יותר מ- 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

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