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