تعمل وحدة ExtServices على تعديل مكوّنات إطار العمل لوظائف النظام الأساسية، مثل ترتيب الإشعارات واستراتيجيات الملء التلقائي للمطابقة النصية وذاكرة التخزين المؤقت ونظام مراقبة الحِزم والخدمات الأخرى التي تعمل باستمرار. هذه الوحدة قابلة للتحديث، أي أنّه يمكن أن تتلقّى تحديثات للوظائف خارج دورة إصدار Android العادية.
مكوّنات الخدمة
تحتوي الوحدة ExtServices على الخدمات التالية.
DisplayHashingService
اعتبارًا من Android 12TextClassifierService
بدءًا من Android 11InlineSuggestionsRenderService
بدءًا من Android 11AutofillFieldClassificationService
بدءًا من Android 10NotificationAssistantService
بدءًا من Android 10ResolverRankerService
بدءًا من Android 10CacheQuotaService
بدءًا من Android 10
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:
تغييرات الإعدادات. تم التحقّق من المعلومات من خلال اختبار CTS
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
.TextClassifier
config. تم إثبات الملكية من خلال اختبار CTScts/TextClassifierPolicyTest.java
.اقتراح مضمّن للملء التلقائي. تم إثبات ذلك من خلال اختبارات CTS في
cts/inline/
.