يُحدِّث وحدة 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/.
اسم الحزمة
يجب أن تضبط الأجهزة التي تعمل بنظام التشغيل Android 11 السمة
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تم التحقّق من خلال اختبار CTS cts/TextClassifierPolicyTest.java.اقتراح الملء التلقائي المضمّن تم التحقّق من خلال اختبارات CTS في
cts/inline/.