الخدمات الإضافية

تقوم وحدة ExtServices بتحديث مكونات إطار العمل لوظائف نظام التشغيل الأساسية، مثل تصنيف الإشعارات، واستراتيجيات مطابقة النص للملء التلقائي، وذاكرة التخزين المؤقت، ومراقبة الحزم، والخدمات الأخرى التي تعمل باستمرار. هذه الوحدة قابلة للتحديث، مما يعني أنها يمكن أن تتلقى تحديثات للوظائف خارج دورة إصدار Android العادية.

مكونات الخدمة

تحتوي وحدة ExtServices على الخدمات التالية.

خدمة ديسبلاي هاشينج

في 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 هي كما يلي: