CronetEngine.Builder

class CronetEngine.Builder


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

ملخّص

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

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

الثوابت

const Int

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

const Int

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

const Int

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

const Int

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

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

Builder(context: Context!)

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

الوظائف العامة

CronetEngine.Builder!
addPublicKeyPins(
    hostName: String!,
    pinsSha256: (Mutable)Set<ByteArray!>!,
    includeSubdomains: Boolean,
    expirationDate: Date!
)

تثبّت هذه السمة مجموعة من المفاتيح العامة لمضيف معيّن.

CronetEngine.Builder!
addQuicHint(host: String!, port: Int, alternatePort: Int)

إضافة تلميح بأنّ host يتيح استخدام QUIC.

CronetEngine!

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

CronetEngine.Builder!

تحدّد ما إذا كان ضغط Brotli مفعّلاً.

CronetEngine.Builder!

يحدّد هذا الخيار ما إذا كان بروتوكول HTTP/2 مفعّلاً.

CronetEngine.Builder!
enableHttpCache(cacheMode: Int, maxSize: Long)

تفعيل أو إيقاف التخزين المؤقت لبيانات HTTP ومعلومات أخرى، مثل معلومات خادم QUIC

CronetEngine.Builder!

تفعيل أداة تقدير جودة الشبكة التي تجمع قياسات وقت الاستجابة (RTT) ومعدّل نقل البيانات في اتجاه واحد عند مختلف طبقات حزمة الشبكة وتعرضها

CronetEngine.Builder!

تفعيل أو إيقاف تجاوز تثبيت المفتاح العام لمراسي الثقة المحلية

CronetEngine.Builder!

تحدّد ما إذا كان بروتوكول 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!

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

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

CronetEngine.Builder!
setUserAgent(userAgent: String!)

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

السمات المحمية

JSONObject!

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

الثوابت

HTTP_CACHE_DISABLED

const val HTTP_CACHE_DISABLED = 0: Int

إعداد لإيقاف ذاكرة التخزين المؤقت لبروتوكول HTTP قد يتم تخزين بعض البيانات مؤقتًا في الذاكرة. تمت الموافقة على الطلب من خلال enableHttpCache.

HTTP_CACHE_DISK

const val HTTP_CACHE_DISK = 3: Int

إعداد لتفعيل ذاكرة التخزين المؤقت على القرص، بما في ذلك بيانات HTTP يجب استدعاء setStoragePath قبل تمرير هذا الثابت إلى enableHttpCache.

HTTP_CACHE_DISK_NO_HTTP

const val HTTP_CACHE_DISK_NO_HTTP = 2: Int

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

HTTP_CACHE_IN_MEMORY

const val HTTP_CACHE_IN_MEMORY = 1: Int

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

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

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

Builder(context: Context!)

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

المعلَمات
context: Context!

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

الوظائف العامة

addPublicKeyPins

fun addPublicKeyPins(
    hostName: String!,
    pinsSha256: (Mutable)Set<ByteArray!>!,
    includeSubdomains: Boolean,
    expirationDate: Date!
): CronetEngine.Builder!

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

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

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

المعلَمات
hostName: String!

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

pinsSha256: (Mutable)Set<ByteArray!>!

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

includeSubdomains: Boolean

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

expirationDate: Date!

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

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

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

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

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

java.lang.IllegalArgumentException

إذا كان اسم المضيف المقدَّم غير صالح أو كان pinsSha256 يحتوي على مصفوفة بايت لا تمثّل قيمة تجزئة صالحة متوافقة مع SHA-256

addQuicHint

fun addQuicHint(host: String!, port: Int, alternatePort: Int): CronetEngine.Builder!

إضافة تلميح بأنّ host يتيح استخدام QUIC. يُرجى العِلم أنّ enableHttpCache (HTTP_CACHE_DISK) ضروري للاستفادة من إمكانية إنشاء اتصال 0-RTT بين الجلسات.

المعلَمات
host: String!

اسم مضيف الخادم الذي يتيح استخدام QUIC

port: Int

مضيف الخادم الذي يتيح بروتوكول QUIC

alternatePort: Int

منفذ بديل لاستخدامه مع QUIC

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

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

إنشاء

fun build(): CronetEngine!

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

المرتجعات
CronetEngine!

تم إنشاؤه في CronetEngine.

enableBrotli

fun enableBrotli(value: Boolean): CronetEngine.Builder!

تحدّد ما إذا كان ضغط Brotli مفعّلاً. في حال تفعيلها، سيتم الإعلان عن Brotli في عناوين طلبات Accept-Encoding. يكون الإعداد التلقائي هو "غير مفعَّل".

المعلَمات
value: Boolean

true لتفعيل Brotli، وfalse لإيقافها

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

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

enableHttp2

fun enableHttp2(value: Boolean): CronetEngine.Builder!

يحدّد هذا الخيار ما إذا كان بروتوكول HTTP/2 مفعّلاً. يكون هذا الخيار مفعَّلاً تلقائيًا.

المعلَمات
value: Boolean

true لتفعيل HTTP/2، false لإيقافه

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

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

enableHttpCache

fun enableHttpCache(cacheMode: Int, maxSize: Long): CronetEngine.Builder!

تفعيل أو إيقاف التخزين المؤقت لبيانات HTTP ومعلومات أخرى، مثل معلومات خادم QUIC

المعلَمات
cacheMode: Int

التحكّم في الموقع الجغرافي للبيانات المخزَّنة مؤقتًا ونوعها يجب أن يكون أحد القيم التالية: HTTP_CACHE_*.

maxSize: Long

الحد الأقصى للحجم بالبايت المستخدَم لتخزين البيانات مؤقتًا (إرشادي وقد يتم تجاوزه في بعض الأحيان).

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

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

enableNetworkQualityEstimator

fun enableNetworkQualityEstimator(value: Boolean): CronetEngine.Builder!

تفعيل أداة تقدير جودة الشبكة التي تجمع قياسات وقت الاستجابة (RTT) ومعدّل نقل البيانات في اتجاه واحد عند مختلف طبقات حزمة الشبكة وتعرضها بعد تفعيل أداة تقدير معدل نقل البيانات، يمكن إضافة متتبعي مراسلة نصية في الوقت الفعلي وسرعة معالجة البيانات باستخدام addRttListener وaddThroughputListener وإزالتهم باستخدام removeRttListener وremoveThroughputListener. لا يستخدم المقدِّر الذاكرة ووحدة المعالجة المركزية إلا عند تفعيله.

المعلَمات
value: Boolean

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

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

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

enablePublicKeyPinningBypassForLocalTrustAnchors

fun enablePublicKeyPinningBypassForLocalTrustAnchors(value: Boolean): CronetEngine.Builder!

تفعيل أو إيقاف تجاوز تثبيت المفتاح العام لمراسي الثقة المحلية ننصح بشدة بعدم إيقاف التجاوز لمراسي الثقة المحلية لأنّ ذلك قد يمنع التطبيق من التواصل مع المضيفين المثبّتين. على سبيل المثال، قد يريد المستخدم إرسال كل عدد الزيارات من خلال خادم وكيل مفعّل لبروتوكول SSL عن طريق تغيير إعدادات خادم وكيل الجهاز وإضافة شهادة الخادم الوكيل إلى قائمة مرجع الثقة المحلي. سيؤدي إيقاف التجاوز على الأرجح إلى منع التطبيق من إرسال أي زيارات إلى المضيفين المثبّتين. لمزيد من المعلومات، يُرجى الاطّلاع على "كيف تتفاعل ميزة تثبيت المفتاح مع الخوادم الوكيلة والفلاتر المحلية؟" على الرابط https://www.chromium.org/Home/chromium-security/security-faq

المعلَمات
value: Boolean

true لتفعيل التجاوز، false لإيقافه

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

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

enableQuic

fun enableQuic(value: Boolean): CronetEngine.Builder!

تحدّد ما إذا كان بروتوكول QUIC مفعَّلاً. يكون هذا الخيار مفعَّلاً تلقائيًا. في حال تفعيل QUIC، يتم إرسال معرّف وكيل مستخدم QUIC الذي يحتوي على اسم التطبيق وإصدار Cronet إلى الخادم.

المعلَمات
value: Boolean

true لتفعيل بروتوكول QUIC، وfalse لإيقافه

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

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

getDefaultUserAgent

fun getDefaultUserAgent(): String!

تنشئ هذه الدالة سلسلة User-Agent تتضمّن اسم التطبيق وإصداره وإصدار النظام ورقم التعريف والطراز وإصدار Cronet.

المرتجعات
String!

سلسلة وكيل المستخدم

setConnectionMigrationOptions

@ConnectionMigrationOptions.Experimental
fun setConnectionMigrationOptions(
    connectionMigrationOptionsBuilder: ConnectionMigrationOptions.Builder!
): CronetEngine.Builder!
انظر أيضًا
setConnectionMigrationOptions

setConnectionMigrationOptions

@ConnectionMigrationOptions.Experimental
fun setConnectionMigrationOptions(
    connectionMigrationOptions: ConnectionMigrationOptions!
): CronetEngine.Builder!

تضبط هذه السمة طريقة عمل عملية نقل الاتصال. لمزيد من التفاصيل، راجِع مستندات ConnectionMigrationOptions والطُرق الفردية في ConnectionMigrationOptions.Builder.

لا يكون هذا الخيار ذا صلة إلا إذا كان الخيار enableQuic مفعَّلاً.

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

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

setDnsOptions

@DnsOptions.Experimental
fun setDnsOptions(dnsOptions: DnsOptions!): CronetEngine.Builder!

تُستخدَم لضبط سلوك البحث عن اسم المضيف. لمزيد من التفاصيل، راجِع مستندات DnsOptions والطُرق الفردية في DnsOptions.Builder.

لا يكون هذا الخيار ذا صلة إلا إذا كان الخيار enableQuic مفعَّلاً.

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

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

setDnsOptions

@DnsOptions.Experimental
fun setDnsOptions(dnsOptions: DnsOptions.Builder!): CronetEngine.Builder!
انظر أيضًا
setDnsOptions

setLibraryLoader

fun setLibraryLoader(loader: CronetEngine.Builder.LibraryLoader!): CronetEngine.Builder!

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

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

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

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

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

setProxyOptions

fun setProxyOptions(proxyOptions: ProxyOptions): CronetEngine.Builder!

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

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

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

المعلَمات
proxyOptions: ProxyOptions

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

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

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

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

إذا كان إصدار Cronet المستخدَم قديمًا جدًا ولا يتوافق مع ProxyOptions

setQuicOptions

@QuicOptions.Experimental
fun setQuicOptions(quicOptionsBuilder: QuicOptions.Builder!): CronetEngine.Builder!
انظر أيضًا
setQuicOptions

setQuicOptions

@QuicOptions.Experimental
fun setQuicOptions(quicOptions: QuicOptions!): CronetEngine.Builder!

تضبط هذه السمة سلوك Cronet عند استخدام QUIC. لمزيد من التفاصيل، راجِع مستندات QuicOptions والطُرق الفردية في QuicOptions.Builder.

لا يكون هذا الخيار ذا صلة إلا إذا كان الخيار enableQuic مفعَّلاً.

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

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

setStoragePath

fun setStoragePath(value: String!): CronetEngine.Builder!

تضبط هذه السياسة الدليل الخاص بذاكرة التخزين المؤقت على الويب وتخزين ملفات تعريف الارتباط. يجب أن يكون الدليل متوفّرًا.

ملاحظة: لا تستخدِم دليل التخزين نفسه مع أكثر من CronetEngine في الوقت نفسه. لا يتيح الوصول إلى دليل التخزين إمكانية الوصول المتزامن من خلال عدة CronetEngine.

المعلَمات
value: String!

مسار الدليل الحالي

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

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

setThreadPriority

fun setThreadPriority(priority: Int): CronetEngine.Builder!

تضبط هذه السمة أولوية سلسلة المحادثات الداخلية في Cronet.

المعلَمات
priority: Int

أولوية سلسلة المحادثات الداخلية في Cronet مستوى أولوية Linux، من -20 لأعلى أولوية جدولة إلى 19 لأدنى أولوية جدولة لمزيد من المعلومات حول القيم، اطّلِع على قيم setThreadPriority وTHREAD_PRIORITY_*.

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

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

setUserAgent

fun setUserAgent(userAgent: String!): CronetEngine.Builder!

تتجاوز هذه السمة عنوان User-Agent لجميع الطلبات. سيؤدي عنوان User-Agent الذي تم ضبطه بشكلٍ صريح (باستخدام addHeader) إلى تجاهل القيمة التي تم ضبطها باستخدام هذه الدالة.

المعلَمات
userAgent: String!

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

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

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

السمات المحمية

mParsedExperimentalOptions

protected val mParsedExperimentalOptionsJSONObject!

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