CronetEngine.Builder

public class CronetEngine.Builder


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

ملخّص

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

تم إيقاف هذه الفئة نهائيًا.

لم يكن System.loadLibrary موثوقًا به في الإصدارات التي تقل عن 23 من minSDK أو تساويه، وتم استخدام هذه الطريقة لتوفير أدوات تحميل بديلة وأكثر موثوقية.

الثوابت

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

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

لم يكن System.loadLibrary موثوقًا به في الإصدارات التي تقل عن 23 من minSDK أو تساويه، وتم استخدام هذه الطريقة لتوفير أدوات تحميل بديلة وأكثر موثوقية.

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

مجموعة من الدبابيس كل رمز PIN هو تجزئة تشفير 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) للاستفادة من ميزة إنشاء الاتصال بدون تأخير بين الجلسات.

المعلَمات
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

تسهيل ربط العناصر ببعضها