CronetEngine.Builder

public class CronetEngine.Builder


أداة إنشاء CronetEngine تتيح ضبط CronetEngine في وقت التشغيل. يتم ضبط خيارات الإعداد على أداة الإنشاء، ثم يتم استدعاء build لإنشاء CronetEngine.

ملخّص

الأنواع المتداخلة

فئة توفّر طريقة لتحميل مكتبة مجمّعة من رموز برمجية أصلية لـ Cronet.

الثوابت

static final int

إعداد لإيقاف ذاكرة التخزين المؤقت لبروتوكول HTTP

static final int

إعداد لتفعيل ذاكرة التخزين المؤقت على القرص، بما في ذلك بيانات HTTP

static final int

ضبط الإعداد لتفعيل ذاكرة التخزين المؤقت على القرص، باستثناء بيانات HTTP

static final int

إعداد لتفعيل ذاكرة التخزين المؤقت لبروتوكول HTTP في الذاكرة، بما في ذلك بيانات HTTP

الحقول المحمية

JSONObject

تمثيل JSON للخيارات التجريبية

طُرق وضع التصميم العامة

Builder(Context context)

تنشئ هذه الدالة عنصر Builder يسهّل إنشاء CronetEngine.

الإجراءات العامة

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 باستخدام إعدادات أداة الإنشاء هذه

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 تتضمّن اسم التطبيق وإصداره وإصدار النظام ورقم التعريف والطراز وإصدار Cronet.

CronetEngine.Builder
CronetEngine.Builder

تضبط هذه السمة طريقة عمل عملية نقل الاتصال.

CronetEngine.Builder

تُستخدَم لضبط سلوك البحث عن اسم المضيف.

CronetEngine.Builder
CronetEngine.Builder

تضبط هذه السمة LibraryLoader ليتم استخدامها لتحميل المكتبة المجمّعة من الرموز البرمجية الأصلية.

CronetEngine.Builder

يضبط هذا الخيار سلوك الخادم الوكيل.

CronetEngine.Builder
CronetEngine.Builder

تضبط هذه السمة سلوك Cronet عند استخدام QUIC.

CronetEngine.Builder

تضبط هذه السياسة الدليل الخاص بالتخزين المؤقت عبر HTTP وتخزين ملفات تعريف الارتباط.

CronetEngine.Builder
setThreadPriority(int priority)

تم إيقاف هذا الإجراء نهائيًا.

في الإصدارات الحديثة من Cronet، لا تنفّذ هذه الطريقة أي إجراء.

CronetEngine.Builder
setUserAgent(String userAgent)

تتجاوز هذه السمة عنوان User-Agent لجميع الطلبات.

الثوابت

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 للخيارات التجريبية

طُرق وضع التصميم العامة

"البنّاء" (Builder)

public Builder(Context context)

تنشئ هذه الدالة عنصر Builder يسهّل إنشاء CronetEngine. تفعِّل الإعدادات التلقائية البروتوكولَين HTTP/2 وQUIC، ولكنها توقف ذاكرة التخزين المؤقت لبروتوكول HTTP.

المعلَمات
Context context

‫Android Context، الذي يستخدمه Builder لاسترداد سياق التطبيق سيتم الاحتفاظ بمرجع لسياق التطبيق فقط، وذلك لتجنُّب إطالة عمر context بدون داعٍ.

الإجراءات العامة

addPublicKeyPins

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

تثبّت هذه السمة مجموعة من المفاتيح العامة لمضيف معيّن. من خلال تثبيت مجموعة من المفاتيح العامة، pinsSha256، يجب أن يتم التواصل مع hostName للمصادقة باستخدام شهادة تتضمّن مفتاحًا عامًا من مجموعة المفاتيح المثبّتة. يمكن للتطبيق تثبيت المفتاح العام لشهادة الجذر أو أي من الشهادات الوسيطة أو شهادة الكيان النهائي. ستتعذّر المصادقة ولن يتم إنشاء اتصال آمن إذا لم يكن أي من المفاتيح العامة متوفّرًا في سلسلة شهادات المضيف، حتى إذا حاول المضيف المصادقة باستخدام شهادة مسموح بها من خلال مخزن الشهادات الموثوق به على الجهاز.

سيؤدي استدعاء هذه الطريقة عدة مرات باستخدام اسم المضيف نفسه إلى إلغاء الدبابيس التي تم ضبطها سابقًا للمضيف.

يمكنك الاطّلاع على مزيد من المعلومات حول تثبيت المفتاح العام في RFC 7469.

المعلَمات
String hostName

اسم المضيف الذي يجب تثبيت المفاتيح العامة فيه تُعدّ المضيفات التي تتألف من أرقام ونقطة فقط غير صالحة.

Set<byte[]> pinsSha256

مجموعة من الدبابيس كل رمز هو تجزئة تشفير SHA-256 لتمثيل ASN.1 بترميز DER لمعلومات المفتاح العام الخاص بالموضوع (SPKI) لشهادة X.509 الخاصة بالمضيف. استخدِم Certificate.getPublicKey() وKey.getEncoded() للحصول على تمثيل ASN.1 بترميز DER لمفتاح SPKI. على الرغم من أنّ الطريقة لا تتطلّب توفُّر رقم التعريف الشخصي الاحتياطي الذي يمكن استخدامه في حال فقدان إمكانية التحكّم في المفتاح الخاص الأساسي، يُنصح بشدة بتوفير رقم تعريف شخصي احتياطي.

boolean includeSubdomains

تشير هذه السمة إلى ما إذا كان يجب تطبيق سياسة التثبيت على النطاقات الفرعية من hostName.

Date expirationDate

تحدّد تاريخ انتهاء صلاحية رموز PIN.

المرتجعات
CronetEngine.Builder

تسهيل ربط السلاسل

عمليات الطرح
java.lang.NullPointerException

إذا كانت أي من مَعلمات الإدخال null.

java.lang.IllegalArgumentException

إذا كان اسم المضيف المقدَّم غير صالح أو كان pinsSha256 يحتوي على مصفوفة بايت لا تمثّل قيمة تجزئة صالحة متوافقة مع 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

تسهيل ربط السلاسل

إنشاء

public CronetEngine build()

إنشاء CronetEngine باستخدام إعدادات أداة الإنشاء هذه

المرتجعات
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) ومعدّل نقل البيانات في اتجاه واحد عند مختلف طبقات حزمة الشبكة وتعرضها بعد تفعيل أداة تقدير معدل نقل البيانات، يمكن إضافة متتبعي مراسلة نصية في الوقت الفعلي وسرعة معالجة البيانات باستخدام addRttListener وaddThroughputListener وإزالتهم باستخدام removeRttListener وremoveThroughputListener. لا يستخدم المقدِّر الذاكرة ووحدة المعالجة المركزية إلا عند تفعيله.

المعلَمات
boolean value

true لتفعيل أداة تقدير جودة الشبكة، false لإيقافها

المرتجعات
CronetEngine.Builder

تسهيل ربط السلاسل

enablePublicKeyPinningBypassForLocalTrustAnchors

public CronetEngine.Builder enablePublicKeyPinningBypassForLocalTrustAnchors(boolean value)

تفعيل أو إيقاف تجاوز تثبيت المفتاح العام لمراسي الثقة المحلية ننصح بشدة بعدم إيقاف التجاوز لمراسي الثقة المحلية لأنّ ذلك قد يمنع التطبيق من التواصل مع المضيفين المثبّتين. على سبيل المثال، قد يريد المستخدم إرسال كل عدد الزيارات من خلال خادم وكيل مفعّل لبروتوكول 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 تتضمّن اسم التطبيق وإصداره وإصدار النظام ورقم التعريف والطراز وإصدار 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 ليتم استخدامها لتحميل المكتبة المجمّعة من الرموز البرمجية الأصلية. في حال عدم ضبطها، سيتم تحميل المكتبة باستخدام loadLibrary.

المعلَمات
CronetEngine.Builder.LibraryLoader loader

LibraryLoader التي سيتم استخدامها لتحميل المكتبة المجمّعة من الرموز البرمجية الأصلية

المرتجعات
CronetEngine.Builder

تسهيل ربط السلاسل

setProxyOptions

public CronetEngine.Builder setProxyOptions(@NonNull ProxyOptions proxyOptions)

يضبط هذا الخيار سلوك الخادم الوكيل. يؤثّر ذلك بطرق مختلفة في إنشاء عمليات الربط وUrlRequest وBidirectionalStream. لمزيد من التفاصيل، يُرجى الرجوع إلى مستندات Proxy.

يجب عدم الخلط بين ذلك وبين إعدادات الخادم الوكيل التي تم ضبطها من قِبل المستخدم أو بعض إعدادات ملف العمل أو (على الأرجح) بعض الإعدادات التلقائية للشبكة (مثل بروتوكول الاكتشاف التلقائي للخادم الوكيل على الويب). يُشار إلى ذلك عادةً باسم إعدادات الخادم الوكيل "للنظام". في حال توفُّر إعدادات خادم وكيل، غالبًا ما يكون الالتزام بها شرطًا للحصول على اتصال بالشبكة المحلية و/أو الإنترنت. تتعامل CronetEngine مع إعدادات الخادم الوكيل للنظام داخليًا.

يُشار إلى إعدادات الخادم الوكيل المحدّدة من خلال واجهة برمجة التطبيقات هذه باسم إعدادات الخادم الوكيل "للتطبيق". يختلف إعداد الخادم الوكيل للتطبيق عن إعداد الخادم الوكيل للنظام، والأهم من ذلك أنّهما مختلفان. في الوقت الحالي، تتنافى إعدادات الخادم الوكيل للتطبيق والنظام مع بعضها البعض: يؤدي تحديد ProxyOptions إلى إلغاء إعدادات الخادم الوكيل للنظام، إذا كانت متوفّرة. قد يؤدي ذلك إلى حدوث مشاكل في الاتصال في بعض السيناريوهات التي يتوفّر فيها إعداد خادم وكيل للنظام. في مثل هذه السيناريوهات، قد لا يتمكّن المستخدمون من الوصول إلى الإنترنت، ما لم يتم ضبط ProxyOptions باستخدام null نهائي كخيار احتياطي. يُرجى الرجوع إلى مستندات ProxyOptions.

المعلَمات
@NonNull ProxyOptions proxyOptions

خيارات الوكيل التي سيتم استخدامها في UrlRequest وBiridirectionalStream والاتصالات التي تم إنشاؤها بواسطة CronetEngine الذي تم إنشاؤه بواسطة أداة الإنشاء هذه

المرتجعات
CronetEngine.Builder

تسهيل ربط السلاسل

عمليات الطرح
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 وتخزين ملفات تعريف الارتباط. يجب أن يكون الدليل متوفّرًا.

ملاحظة: لا تستخدِم دليل التخزين نفسه مع أكثر من 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 لجميع الطلبات. سيؤدي عنوان User-Agent الذي تم ضبطه بشكلٍ صريح (باستخدام addHeader) إلى تجاهل القيمة التي تم ضبطها باستخدام هذه الدالة.

المعلَمات
String userAgent

سلسلة User-Agent التي سيتم استخدامها لجميع الطلبات

المرتجعات
CronetEngine.Builder

تسهيل ربط السلاسل