JavaCronetEngine

class JavaCronetEngine : CronetEngineBase


تمت إضافة java.net.HttpURLConnection إلى CronetEngine.

لا تتوافق مع netlogs أو قياس البيانات المنقولة أو bidistream أو ذاكرة التخزين المؤقت أو الأولوية.

ملخّص

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

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

Unit

تسجّل هذه السمة معالجًا يتم استدعاؤه بعد انتهاء كل طلب مع معلومات الطلب.

Unit

تسجّل هذه الطريقة أداة معالجة يتم استدعاؤها عندما يرصد مقدّر جودة الشبكة وقت نقل البيانات ذهابًا وإيابًا.

Unit

تسجّل هذه الطريقة أداة معالجة يتم استدعاؤها عندما يشهد مقدّر جودة الشبكة قياسًا لسرعة معالجة البيانات.

Unit
bindToNetwork(networkHandle: Long)

يربط المحرّك بمقبض الشبكة المحدّد.

Unit
configureNetworkQualityEstimatorForTesting(
    useLocalHostRequests: Boolean,
    useSmallerResponses: Boolean,
    disableOfflineCheck: Boolean
)

تضبط هذه السمة أداة تقدير جودة الشبكة لأغراض الاختبار.

ExperimentalUrlRequest!
createRequest(
    url: String!,
    callback: UrlRequest.Callback!,
    executor: Executor!,
    priority: Int,
    connectionAnnotations: (Mutable)Collection<Any!>!,
    disableCache: Boolean,
    disableConnectionMigration: Boolean,
    allowDirectExecutor: Boolean,
    trafficStatsTagSet: Boolean,
    trafficStatsTag: Int,
    trafficStatsUidSet: Boolean,
    trafficStatsUid: Int,
    requestFinishedListener: RequestFinishedInfo.Listener!,
    idempotency: Int,
    networkHandle: Long,
    method: String!,
    requestHeaders: ArrayList<(Mutable)Map.Entry<String!, String!>!>!,
    uploadDataProvider: UploadDataProvider!,
    uploadDataProviderExecutor: Executor!,
    sharedDictionaryHash: ByteArray!,
    sharedDictionary: ByteBuffer!,
    sharedDictionaryId: String
)
URLStreamHandlerFactory!

إنشاء URLStreamHandlerFactory للتعامل مع زيارات HTTP وHTTPS

Int

تعرض هذه السمة عدد الطلبات النشطة.

Int

تعرض هذه السمة تقديرًا لمعدّل نقل البيانات في اتجاه التنزيل (بالكيلوبت في الثانية) الذي يحسبه مقدّر جودة الشبكة.

Int

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

ByteArray<Byte>!

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

في الإصدارات الحديثة من Cronet، سيؤدي ذلك دائمًا إلى عرض مصفوفة فارغة.

Int

تعرض هذه السمة تقديرًا لوقت الاستجابة الكامل (RTT) لبروتوكول HTTP (بالمللي ثانية) الذي تم احتسابه بواسطة أداة تقدير جودة الشبكة.

Int

تعرض هذه السمة تقديرًا لوقت الاستجابة الكامل للنقل (بالمللي ثانية) الذي يتم احتسابه بواسطة أداة تقدير جودة الشبكة.

String!
URLConnection!

تنشئ هذه السمة اتصالاً جديدًا بالمرجع المحدّد بواسطة URLurl.

URLConnection!
openConnection(url: URL!, proxy: Proxy!)

تنشئ هذه السمة اتصالاً جديدًا بالمرجع المحدّد بواسطة URLurl باستخدام الخادم الوكيل المحدّد.

Unit

تزيل هذه الطريقة أداة معالجة طلب مكتمل.

Unit

يزيل مستمعًا لأوقات الرحلة ذهابًا وعودة إذا تم تسجيله مسبقًا باستخدام addRttListener.

Unit

يزيل أداة معالجة معدل نقل البيانات.

Unit

يوقف CronetEngine إذا لم تكن هناك طلبات نشطة، وإلا سيتم عرض استثناء.

Unit
startNetLogToDisk(dirPath: String!, logAll: Boolean, maxSize: Int)

يبدأ تسجيل NetLog في دليل محدّد بحجم محدود.

Unit
startNetLogToFile(fileName: String!, logAll: Boolean)

يبدأ تسجيل NetLog في ملف.

Unit

يوقف تسجيل NetLog ويفرغ الملف إلى القرص.

الدوال المحمية

ExperimentalBidirectionalStream!
createBidirectionalStream(
    url: String!,
    callback: BidirectionalStream.Callback!,
    executor: Executor!,
    httpMethod: String!,
    requestHeaders: (Mutable)List<(Mutable)Map.Entry<String!, String!>!>!,
    @CronetEngineBase.StreamPriority priority: Int,
    delayRequestHeadersUntilFirstFlush: Boolean,
    connectionAnnotations: (Mutable)Collection<Any!>!,
    trafficStatsTagSet: Boolean,
    trafficStatsTag: Int,
    trafficStatsUidSet: Boolean,
    trafficStatsUid: Int,
    networkHandle: Long
)

الثوابت الموروثة

من org.chromium.net.CronetEngine
const Int

قيمة عدد الطلبات النشطة غير معروفة

من org.chromium.net.impl.CronetEngineBase

الدوال الموروثة

من org.chromium.net.impl.CronetEngineBase
ExperimentalUrlRequest.Builder!
newUrlRequestBuilder(
    url: String!,
    callback: UrlRequest.Callback!,
    executor: Executor!
)

تنشئ هذه الدالة أداة إنشاء لـ UrlRequest.

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

JavaCronetEngine

JavaCronetEngine(builder: CronetEngineBuilderImpl!)

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

addRequestFinishedListener

fun addRequestFinishedListener(listener: RequestFinishedInfo.Listener!): Unit

تسجّل هذه السمة معالجًا يتم استدعاؤه بعد انتهاء كل طلب مع معلومات الطلب.

يتم الاتصال بالمستمع على java.util.concurrent.Executor يقدّمه المستمع.

المعلَمات
listener: RequestFinishedInfo.Listener!

المستمع للطلبات المكتملة

addRttListener

fun addRttListener(listener: NetworkQualityRttListener!): Unit

تسجّل هذه الطريقة أداة معالجة يتم استدعاؤها عندما يرصد مقدّر جودة الشبكة وقت نقل البيانات ذهابًا وإيابًا. يجب استدعاء هذه الدالة بعد enableNetworkQualityEstimator، وإلا سيتم طرح استثناء. يمكن تسجيل أوقات الذهاب والعودة في طبقات مختلفة من حزمة الشبكة، بما في ذلك TCP وQUIC وفي طبقة طلب عنوان URL. يتم استدعاء المستمع على java.util.concurrent.Executor الذي يتم تمريره إلى enableNetworkQualityEstimator.

المعلَمات
listener: NetworkQualityRttListener!

المستمع إلى مدة الذهاب والعودة

addThroughputListener

fun addThroughputListener(listener: NetworkQualityThroughputListener!): Unit

تسجّل هذه الطريقة أداة معالجة يتم استدعاؤها عندما يشهد مقدّر جودة الشبكة قياسًا لسرعة معالجة البيانات. يجب استدعاء هذه الطريقة بعد enableNetworkQualityEstimator. يتم احتساب ملاحظات سرعة معالجة البيانات من خلال قياس عدد وحدات البايت التي تمّت قراءتها عبر واجهة الشبكة النشطة في الأوقات التي يتم فيها تلقّي ردّ واحد على الأقل من عنوان URL. يتم استدعاء المستمع على java.util.concurrent.Executor الذي يتم تمريره إلى enableNetworkQualityEstimator.

المعلَمات
listener: NetworkQualityThroughputListener!

تمثّل المستمع إلى معدل النقل.

bindToNetwork

fun bindToNetwork(networkHandle: Long): Unit

يربط المحرّك بمقبض الشبكة المحدّد. ستستخدم جميع الطلبات التي يتم إنشاؤها من خلال محرك البحث هذا الشبكة المرتبطة بهذا الاسم المعرِّف. في حال انقطاع الاتصال بالشبكة، ستتعذّر جميع الطلبات، وسيعتمد الخطأ الدقيق على مرحلة معالجة الطلب عند انقطاع الاتصال بالشبكة. يمكن الحصول على أسماء المستخدمين على الشبكة من خلال Network#getNetworkHandle. تتوفّر هذه الميزة على الإصدارات الأحدث من Android Marshmallow فقط.

المعلَمات
networkHandle: Long

معرّف الشبكة الذي سيتم ربط المحرك به. حدِّد UNBIND_NETWORK_HANDLE لإلغاء الربط.

configureNetworkQualityEstimatorForTesting

fun configureNetworkQualityEstimatorForTesting(
    useLocalHostRequests: Boolean,
    useSmallerResponses: Boolean,
    disableOfflineCheck: Boolean
): Unit

تضبط هذه السمة أداة تقدير جودة الشبكة لأغراض الاختبار. يجب استدعاء هذه الدالة قبل إضافة أدوات معالجة وقت نقل البيانات ذهابًا وإيابًا وسرعة معالجة البيانات، وبعد تفعيل أداة تقدير جودة الشبكة.

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

تضمين الطلبات المقدَّمة إلى المضيف المحلي في التقديرات

useSmallerResponses: Boolean

تضمين الردود الصغيرة في تقديرات معدل النقل

disableOfflineCheck: Boolean

عند ضبطها على "صحيح"، يتم إيقاف عمليات التحقّق من حالة الجهاز غير المتصل بالإنترنت عند احتساب نوع الاتصال الفعّال أو عند كتابة الإعدادات المفضّلة.

createRequest

fun createRequest(
    url: String!,
    callback: UrlRequest.Callback!,
    executor: Executor!,
    priority: Int,
    connectionAnnotations: (Mutable)Collection<Any!>!,
    disableCache: Boolean,
    disableConnectionMigration: Boolean,
    allowDirectExecutor: Boolean,
    trafficStatsTagSet: Boolean,
    trafficStatsTag: Int,
    trafficStatsUidSet: Boolean,
    trafficStatsUid: Int,
    requestFinishedListener: RequestFinishedInfo.Listener!,
    idempotency: Int,
    networkHandle: Long,
    method: String!,
    requestHeaders: ArrayList<(Mutable)Map.Entry<String!, String!>!>!,
    uploadDataProvider: UploadDataProvider!,
    uploadDataProviderExecutor: Executor!,
    sharedDictionaryHash: ByteArray!,
    sharedDictionary: ByteBuffer!,
    sharedDictionaryId: String
): ExperimentalUrlRequest!

createURLStreamHandlerFactory

fun createURLStreamHandlerFactory(): URLStreamHandlerFactory!

إنشاء URLStreamHandlerFactory للتعامل مع زيارات HTTP وHTTPS يمكن تثبيت مثيل من هذه الفئة من خلال setURLStreamHandlerFactory، وبالتالي استخدام CronetEngine تلقائيًا لجميع الطلبات التي يتم إنشاؤها من خلال openConnection.

لا تستخدم Cronet ميزات HTTP معيّنة يتم توفيرها من خلال النظام:

  • ذاكرة التخزين المؤقت عبر HTTP المثبَّتة من خلال HttpResponseCache.install()
  • طريقة مصادقة HTTP المثبَّتة من خلال setDefault
  • مساحة تخزين ملفات تعريف ارتباط HTTP التي تم تثبيتها من خلال setDefault

مع أنّ Cronet يتيح الطلبات باستخدام بروتوكول HTTPS ويشجّع على ذلك، لا يتيح Cronet استخدام واجهة برمجة التطبيقات HttpsURLConnection. يشمل عدم التوافق أيضًا عدم استخدام بعض ميزات HTTPS التي يوفّرها النظام:

المرتجعات
URLStreamHandlerFactory!

مثيل URLStreamHandlerFactory تم تنفيذه بواسطة CronetEngine هذا

getActiveRequestCount

fun getActiveRequestCount(): Int

تعرض هذه السمة عدد الطلبات النشطة.

يصبح الطلب "نشطًا" في UrlRequest.start()، على افتراض أنّ هذه الطريقة لا تعرض استثناءً. يصبح غير نشط عندما يتم عرض جميع عمليات معاودة الاتصال ولا يمكن بدء أي عمليات معاودة اتصال إضافية في المستقبل. يعني ذلك عمليًا أنّ الطلب يصبح غير نشط بعد أن تعرض الدالة onSucceeded/onCanceled/onFailed القيمة، وبعد أن تعرض جميع أدوات معالجة الطلبات المكتملة القيمة. دورة حياة طلبات Cronet لمزيد من المعلومات

getDownstreamThroughputKbps

fun getDownstreamThroughputKbps(): Int

تعرض هذه السمة تقديرًا لمعدّل نقل البيانات في اتجاه التنزيل (بالكيلوبت في الثانية) الذي يحسبه مقدّر جودة الشبكة. اضبط القيمة على CONNECTION_METRIC_UNKNOWN إذا كانت غير متاحة. يجب استدعاء هذه الدالة بعد enableNetworkQualityEstimator، وإلا سيتم طرح استثناء.

المرتجعات
Int

تقدير لمعدل نقل البيانات في اتجاه التنزيل بالكيلوبت في الثانية

getEffectiveConnectionType

fun getEffectiveConnectionType(): Int

تعرض هذه السمة تقديرًا لنوع الاتصال الفعّال الذي يتم احتسابه بواسطة أداة تقدير جودة الشبكة. استدعِ الدالة enableNetworkQualityEstimator لبدء احتساب هذه القيمة.

المرتجعات
Int

تمثّل هذه السمة نوع الاتصال المقدَّر. القيمة المعروضة هي إحدى القيم EFFECTIVE_CONNECTION_TYPE_* .

getGlobalMetricsDeltas

fun getGlobalMetricsDeltas(): ByteArray<Byte>!

getHttpRttMs

fun getHttpRttMs(): Int

تعرض هذه السمة تقديرًا لوقت الاستجابة الكامل (RTT) لبروتوكول HTTP (بالمللي ثانية) الذي تم احتسابه بواسطة أداة تقدير جودة الشبكة. اضبط القيمة على CONNECTION_METRIC_UNKNOWN إذا كانت غير متاحة. يجب استدعاء هذه الدالة بعد enableNetworkQualityEstimator، وإلا سيتم طرح استثناء.

المرتجعات
Int

تقدير لوقت الاستجابة الكامل لبروتوكول HTTP بالمللي ثانية

getTransportRttMs

fun getTransportRttMs(): Int

تعرض هذه السمة تقديرًا لوقت الاستجابة الكامل للنقل (بالمللي ثانية) الذي يتم احتسابه بواسطة أداة تقدير جودة الشبكة. اضبط القيمة على CONNECTION_METRIC_UNKNOWN إذا كانت غير متاحة. يجب استدعاء هذه الدالة بعد enableNetworkQualityEstimator، وإلا سيتم طرح استثناء.

المرتجعات
Int

تقدير لمدّة ذهاب وعودة النقل بالمللي ثانية

getVersionString

fun getVersionString(): String!
المرتجعات
String!

سلسلة إصدار المحرك يمكن للمستخدمين قراءتها

openConnection

fun openConnection(url: URL!): URLConnection!

تنشئ هذه السمة اتصالاً جديدًا بالمرجع المحدّد بواسطة URLurl.

ملاحظة: يخضع تنفيذ java.net.HttpURLConnection في Cronet لقيود معيّنة، يمكنك الاطّلاع على createURLStreamHandlerFactory للحصول على التفاصيل.

المعلَمات
url: URL!

عنوان URL للمورد المطلوب الاتصال به

المرتجعات
URLConnection!

مثيل java.net.HttpURLConnection تم تنفيذه بواسطة CronetEngine هذا

عمليات الطرح
java.io.IOException

إذا حدث خطأ أثناء فتح الاتصال

openConnection

fun openConnection(url: URL!, proxy: Proxy!): URLConnection!

تنشئ هذه السمة اتصالاً جديدًا بالمرجع المحدّد بواسطة URLurl باستخدام الخادم الوكيل المحدّد.

ملاحظة: يخضع تنفيذ java.net.HttpURLConnection في Cronet لقيود معيّنة، يمكنك الاطّلاع على createURLStreamHandlerFactory للحصول على التفاصيل.

المعلَمات
url: URL!

عنوان URL للمورد المطلوب الاتصال به

proxy: Proxy!

الخادم الوكيل الذي سيتم استخدامه عند إنشاء الاتصال.

المرتجعات
URLConnection!

مثيل java.net.HttpURLConnection تم تنفيذه بواسطة CronetEngine هذا

عمليات الطرح
java.io.IOException

إذا حدث خطأ أثناء فتح الاتصال

removeRequestFinishedListener

fun removeRequestFinishedListener(listener: RequestFinishedInfo.Listener!): Unit

تزيل هذه الطريقة أداة معالجة طلب مكتمل.

المعلَمات
listener: RequestFinishedInfo.Listener!

المستمع الذي تريد إزالته

removeRttListener

fun removeRttListener(listener: NetworkQualityRttListener!): Unit

يزيل مستمعًا لأوقات الرحلة ذهابًا وعودة إذا تم تسجيله مسبقًا باستخدام addRttListener. يجب استدعاء هذا الإجراء بعد إضافة NetworkQualityRttListener لإيقاف تلقّي الملاحظات.

المعلَمات
listener: NetworkQualityRttListener!

المستمع إلى مدة الذهاب والعودة

removeThroughputListener

fun removeThroughputListener(listener: NetworkQualityThroughputListener!): Unit

يزيل أداة معالجة معدل نقل البيانات. يجب استدعاء هذا الإجراء بعد إضافة NetworkQualityThroughputListener باستخدام addThroughputListener من أجل التوقّف عن تلقّي الملاحظات.

المعلَمات
listener: NetworkQualityThroughputListener!

تمثّل المستمع إلى معدل النقل.

الإيقاف النهائي

fun shutdown(): Unit

يوقف CronetEngine إذا لم تكن هناك طلبات نشطة، وإلا سيتم عرض استثناء.

لا يمكن استدعاؤه في سلسلة محادثات الشبكة، وهي السلسلة التي يستدعي فيها Cronet برنامج Executor (وهي تختلف عن السلسلة التي يستدعي فيها برنامج Executor عمليات رد الاتصال). قد يتم الحظر إلى أن يتم تنظيف جميع موارد CronetEngine.

startNetLogToDisk

fun startNetLogToDisk(dirPath: String!, logAll: Boolean, maxSize: Int): Unit

يبدأ تسجيل NetLog في دليل محدّد بحجم محدود. سيحتوي NetLog على الأحداث التي تم إصدارها من جميع CronetEngine النشطة. تكون أداة NetLog مفيدة لتصحيح الأخطاء. بعد إيقاف التسجيل stopNetLog، ستتم كتابة البيانات في ملف netlog.json في dirPath. في حال انقطاع التسجيل، يمكنك دمج الملفات التي تم العثور عليها في الدليل الفرعي .inprogress يدويًا باستخدام: https://chromium.googlesource.com/chromium/src/+/main/net/tools/stitch_net_log_files.py. يمكن عرض السجلّ باستخدام متصفّح Chrome من خلال الانتقال إلى chrome://net-internals/#import.

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

الدليل الذي سيتم فيه إنشاء ملف netlog.json. يجب أن يكون dirPath متوفّرًا. يجب ألا تكون ملفات NetLog متوفّرة في الدليل. في حال التسجيل النشط، سيتم تجاهل هذا الإجراء.

logAll: Boolean

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

maxSize: Int

الحد الأقصى لإجمالي مساحة القرص بالبايت التي يجب أن يستخدمها NetLog قد يتجاوز استخدام مساحة القرص الفعلية هذا الحد قليلاً.

startNetLogToFile

fun startNetLogToFile(fileName: String!, logAll: Boolean): Unit

يبدأ تسجيل NetLog في ملف. سيحتوي NetLog على الأحداث التي تم إصدارها من جميع CronetEngine النشطة. تكون أداة NetLog مفيدة لتصحيح الأخطاء. يمكن عرض الملف باستخدام متصفّح Chrome من خلال الانتقال إلى chrome://net-internals/#import

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

مسار الملف الكامل يجب ألا يكون فارغًا. إذا كان الملف موجودًا، سيتم اقتطاعه قبل البدء. في حال التسجيل النشط، سيتم تجاهل هذا الإجراء.

logAll: Boolean

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

stopNetLog

fun stopNetLog(): Unit

يوقف تسجيل NetLog ويفرغ الملف إلى القرص. إذا لم تكن هناك جلسة تسجيل قيد التقدّم، سيتم تجاهل هذا الطلب.

الدوال المحمية

createBidirectionalStream

protected fun createBidirectionalStream(
    url: String!,
    callback: BidirectionalStream.Callback!,
    executor: Executor!,
    httpMethod: String!,
    requestHeaders: (Mutable)List<(Mutable)Map.Entry<String!, String!>!>!,
    @CronetEngineBase.StreamPriority priority: Int,
    delayRequestHeadersUntilFirstFlush: Boolean,
    connectionAnnotations: (Mutable)Collection<Any!>!,
    trafficStatsTagSet: Boolean,
    trafficStatsTag: Int,
    trafficStatsUidSet: Boolean,
    trafficStatsUid: Int,
    networkHandle: Long
): ExperimentalBidirectionalStream!