ExtServices

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

اجزای سرویس

ماژول ExtServices شامل سرویس‌های زیر است.

سرویس هش نمایش

در اندروید ۱۲، DisplayHashingService برای تولید نمونه‌ای از DisplayHash برای بافر مشخص‌شده استفاده می‌شود. همچنین برای تأیید اینکه یک hash نمایش خاص توسط سیستم تولید شده است، استفاده می‌شود. هنگام تولید hash نمایش، فراخوانی‌کننده می‌تواند مشخص کند که می‌خواهد از کدام یک از الگوریتم‌های hashing پشتیبانی‌شده استفاده کند.

سرویس طبقه‌بندی متن

کامپوننت سرویس TextClassifierService از APIهای TextClassifier و ویژگی‌های اندروید مانند انتخاب هوشمند متن و پیشنهادهای هوشمند در اعلان‌ها پشتیبانی می‌کند. ماژول ExtServices شامل کلاسه‌بندی‌کننده متن پیش‌فرض است که توسط آزمون CTS به نام TextClassifierPolicyTest.java تأیید می‌شود.

در صورت نیاز، می‌توانید با مشخص کردن config_defaultTextClassifierPackage در config.xml ، یک سرویس طبقه‌بندی متن سفارشی پیکربندی کنید. طبقه‌بندی‌کننده‌های متن سفارشی می‌توانند با فراخوانی TextClassifierService.getDefaultTextClassifierImplementation(Context) برای دریافت نمونه‌ای از آن، به طبقه‌بندی‌کننده متن پیش‌فرض وابسته باشند.

InlineSuggestionRenderService

کامپوننت سرویس InlineSuggestionRenderService امکان نمایش پیشنهادهای درون‌خطی را در نوار پیشنهاد صفحه‌کلید فراهم می‌کند. این سرویس برای رندر کردن یک شیء View که حاوی پیشنهاد درون‌خطی برای جریان جدید Inline Autofill است، فراخوانی می‌شود. پیاده‌سازی پیش‌فرض برای این سرویس رندرکننده androidx.autofill.inline.Renderer را برای رندر کردن پیشنهاد فراخوانی می‌کند. این رفتار توسط تست‌های CTS در /autofillservice/cts/inline/ تأیید می‌شود.

نام بسته

دستگاه‌هایی که اندروید ۱۱ را اجرا می‌کنند باید 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 تأیید می‌شود.

مرز ماژول

در اندروید ۱۲، کد ماژول 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 قرار دارد. اندروید ۱۱ همچنین چندین کلاس پیاده‌سازی TextClassifier را از frameworks/base/core/ خارج می‌کند.

قالب ماژول

در اندروید ۱۱، ماژول ExtServices ( com.android.ext.services ) با فرمت APEX است. در اندروید ۱۰، این ماژول با فرمت APK است.

سفارشی‌سازی

در اندروید ۱۱، می‌توانید یک سرویس طبقه‌بندی متن سفارشی پیکربندی کنید که طبقه‌بندی‌کننده متن پیش‌فرض را فراخوانی کند (با این حال، این توصیه نمی‌شود). در اندروید ۱۰، ماژول ExtServices گزینه‌های سفارشی‌سازی ارائه نمی‌دهد.

آزمایش

مجموعه تست سازگاری اندروید (CTS) با اجرای مجموعه‌ای جامع از تست‌های CTS روی هر نسخه از ماژول، عملکرد ماژول ExtServices را تأیید می‌کند. علاوه بر این، مجموعه تست اصلی (MTS) نیز شامل چندین تست ExtServices است. لیست کامل تست‌های ExtServices به شرح زیر است: