ماژول 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/.