CronetEngine.Builder

class CronetEngine.Builder


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

ملخّص

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

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

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

الثوابت

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!

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

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

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!>!

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

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

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

ملاحظة: لا تستخدِم دليل التخزين نفسه مع أكثر من 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 mParsedExperimentalOptions: JSONObject!

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