ماژول ExtServices اجزای چارچوب را برای عملکرد اصلی سیستم عامل، مانند رتبهبندی اعلانها، استراتژیهای تطبیق متن تکمیل خودکار، حافظه پنهان ذخیرهسازی، نگهبان بسته و سایر خدماتی که بهطور مداوم اجرا میشوند، بهروزرسانی میکند. این ماژول قابل بهروزرسانی است، به این معنی که میتواند بهروزرسانیهای عملکرد را خارج از چرخه انتشار عادی اندروید دریافت کند.
اجزای خدمات
ماژول ExtServices شامل خدمات زیر است.
DisplayHashingService
در اندروید 12 راه اندازی می شودTextClassifierService
در اندروید 11 شروع به کار کردInlineSuggestionsRenderService
در اندروید 11 شروع می شودAutofillFieldClassificationService
شروع به کار در اندروید 10NotificationAssistantService
در اندروید 10 راه اندازی می شودResolverRankerService
در اندروید 10 شروع می شودCacheQuotaService
در اندروید 10 راه اندازی می شود
DisplayHashingService
در اندروید 12، DisplayHashingService
برای تولید نمونه ای از DisplayHash
برای بافر مشخص شده استفاده می شود. همچنین برای تأیید اینکه یک هش نمایش خاص توسط سیستم ایجاد شده است استفاده می شود. هنگام ایجاد هش نمایشگر، تماسگیرنده میتواند مشخص کند که میخواهد از کدام یک از الگوریتمهای هش پشتیبانی شده استفاده کند.
TextClassifierService
مؤلفه سرویس TextClassifierService
از API های TextClassifier
و ویژگی های Android مانند انتخاب متن هوشمند و پیشنهادات هوشمند در اعلان ها پشتیبانی می کند. ماژول ExtServices شامل طبقهبندیکننده متن پیشفرض است که توسط آزمون CTS TextClassifierPolicyTest.java
تأیید میشود.
در صورت نیاز، میتوانید یک سرویس طبقهبندی متن سفارشی را با تعیین config_defaultTextClassifierPackage
در config.xml
پیکربندی کنید. طبقهبندیکنندههای متن سفارشی میتوانند با فراخوانی TextClassifierService.getDefaultTextClassifierImplementation(Context)
به طبقهبندیکننده متن پیشفرض وابسته باشند تا نمونهای از آن را دریافت کنند.
InlineSuggestionRenderService
مؤلفه سرویس InlineSuggestionRenderService
پیشنهادات درون خطی را قادر می سازد تا در نوار پیشنهادات صفحه کلید نشان داده شوند. این سرویس برای ارائه یک شی View
فراخوانی می شود که پیشنهاد Inline را برای جریان تکمیل خودکار درون خطی جدید نگه می دارد. پیادهسازی پیشفرض برای این سرویس رندر، 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
تأیید میشود.
مرز ماژول
در اندروید 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
است. اندروید 11 همچنین چندین کلاس پیاده سازی TextClassifier
از frameworks/base/core/
خارج می کند.
فرمت ماژول
در اندروید 11، ماژول ExtServices ( com.android.ext.services
) با فرمت APEX است. در اندروید 10 این ماژول با فرمت APK است.
سفارشی سازی
در اندروید 11، میتوانید یک سرویس طبقهبندی متن سفارشی را پیکربندی کنید که طبقهبندیکننده متن پیشفرض را فراخوانی میکند (اما این توصیه نمیشود). در اندروید 10، ماژول ExtServices گزینه های سفارشی سازی را ارائه نمی دهد.
تست کردن
مجموعه تست سازگاری اندروید (CTS) عملکرد ماژول ExtServices را با اجرای مجموعه ای جامع از تست های CTS در هر نسخه ماژول تأیید می کند. علاوه بر این، مجموعه تست اصلی (MTS) همچنین شامل چندین تست ExtServices است. لیست کامل تست های ExtServices به شرح زیر است:
پیکربندی تغییر می کند. توسط تست CTS
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
تأیید شده است.پیکربندی
TextClassifier
. تایید شده توسط تست CTScts/TextClassifierPolicyTest.java
.تکمیل خودکار پیشنهاد درون خطی. تایید شده توسط تست های CTS در
cts/inline/
.