ExtServices

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

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

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

DisplayHashingService

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

TextClassifierService

يتوافق TextClassifier واجهات برمجة التطبيقات ومكوّن الخدمة TextClassifierService مع ميزات 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: