ExtServices

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

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

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

‫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: