الخدمات الإضافية

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

مكوّنات الخدمة

تحتوي الوحدة ExtServices على الخدمات التالية.

DisplayHashingService

في Android 12، يتم استخدام DisplayHashingService ل إنشاء مثيل من DisplayHash للذاكرة المؤقتة المحدّدة. ويُستخدَم أيضًا للتحقّق من أنّ النظام قد أنشأ تجزئة عرض معيّنة. عند إنشاء تجزئة عرض، يمكن للمتصل تحديد خوارزميات التجزئة المتوافقة التي يريد استخدامها.

TextClassifierService

يدعم مكوِّن خدمة TextClassifierService واجهات برمجة تطبيقات TextClassifier وميزات Android، مثل اختيار النص الذكي والاقتراحات الذكية في الإشعارات. تحتوي وحدة ExtServices على أداة تصنيف النص التلقائية التي يتم التحقّق منها من خلال اختبار CTS TextClassifierPolicyTest.java.

إذا لزم الأمر، يمكنك ضبط خدمة تصنيف نص مخصّصة من خلال تحديد config_defaultTextClassifierPackage في config.xml. يمكن أن تعتمد مصنِّفات النص المخصّصة على مصنِّف النص التلقائي من خلال طلب الرمز TextClassifierService.getDefaultTextClassifierImplementation(Context) للحصول على مثال منه.

InlineSuggestionRenderService

يتيح مكوّن الخدمة InlineSuggestionRenderService عرض "الاقتراحات المضمّنة" في شريط اقتراحات لوحة المفاتيح. يتمّ استدعاء هذه الخدمة لعرض عنصر View يحتوي على "الاقتراح المضمّن" لمسار "الملء التلقائي المضمّن" الجديد. تُجري عملية التنفيذ التلقائية لخدمة عرض الإعلانات هذه مكالمة إلى androidx.autofill.inline.Renderer لعرض الاقتراح. يتم التحقّق من هذا السلوك من خلال اختبارات CTS في /autofillservice/cts/inline/.

اسم الحزمة

يجب ضبط config_servicesExtensionPackage (في frameworks/base/core/res/res/values/config.xml) على اسم حزمة ExtServices (com.android.ext.services) على الأجهزة التي تعمل بنظام التشغيل Android 11. يتم التأكّد من تغيير الإعدادات هذا من خلال اختبار CTS cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java.

حدود الوحدة

في Android 12، تم نقل رمز وحدة ExtServices من frameworks/base/apex/extservices (وهو دليل فرعي من frameworks/base project) وpackages/modules/ExtServices.

في ما يلي بنية المشروع الجديدة لـ packages/modules/ExtServices:

  • apex/ (ملفات من frameworks/base/apex/extservices)
  • java/ (ملفات من packages/modules/ExtServices/res packages/modules/ExtServices/src وpackages/modules/ExtServices/tests وملفات للميزة الجديدة)
  • jni/ (ملفات للميزة الجديدة)
  • native/ (ملفات للميزة الجديدة)

حدود وحدة ExtServices موجودة في packages/modules/ExtServices. ينقل Android 11 أيضًا العديد من فئات تنفيذ TextClassifier خارج frameworks/base/core/.

تنسيق الوحدة

في Android 11، تكون وحدة ExtServices (com.android.ext.services) بتنسيق APEX. في نظام التشغيل Android 10، تكون هذه الوحدة بتنسيق APK.

التخصيص

في Android 11، يمكنك ضبط خدمة مخصّصة لتصنيف النصوص تُطلِق تصنيف النصوص التلقائي (لا يُنصح بذلك). في Android 10، لا توفّر وحدة ExtServices خيارات تخصيص.

الاختبار

تتحقّق مجموعة أدوات اختبار التوافق مع Android (CTS) من وظائف ملف ExtServices.jar من خلال إجراء مجموعة شاملة من اختبارات CTS على كل إصدار من ملف ‎ExtServices.jar. بالإضافة إلى ذلك، تحتوي "مجموعة اختبارات Mainline" (MTS) أيضًا على العديد من اختبارات ExtServices. في ما يلي القائمة الكاملة لاختبارات ExtServices: