ExtServices

ماژول ExtServices اجزای چارچوب را برای عملکرد اصلی سیستم عامل، مانند رتبه‌بندی اعلان‌ها، استراتژی‌های تطبیق متن تکمیل خودکار، حافظه پنهان ذخیره‌سازی، نگهبان بسته و سایر خدماتی که به‌طور مداوم اجرا می‌شوند، به‌روزرسانی می‌کند. این ماژول قابل به‌روزرسانی است، به این معنی که می‌تواند به‌روزرسانی‌های عملکرد را خارج از چرخه انتشار عادی اندروید دریافت کند.

اجزای خدمات

ماژول ExtServices شامل خدمات زیر است.

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 به شرح زیر است: