ExtServices

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

قطعات سرویس

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

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