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