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