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