ExtServices

يعدّل وحدة 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/.

اسم الحزمة

يجب أن تضبط الأجهزة التي تعمل بالإصدار 11 من نظام التشغيل Android config_servicesExtensionPackage (في frameworks/base/core/res/res/values/config.xml) على اسم حزمة ExtServices (com.android.ext.services). يتم التحقّق من تغيير الإعداد هذا من خلال اختبار 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 خيارات التخصيص.

الاختبار

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