ExtServices

המודול ExtServices מעדכן את רכיבי המסגרת של פונקציונליות הליבה של מערכת ההפעלה, כמו דירוג התראות, אסטרטגיות מילוי אוטומטי בהתאמה לטקסט, מטמון אחסון, מעקב אחר חבילות ושירותים אחרים שפועלים באופן קבוע. אפשר לעדכן את המודול הזה, כלומר הוא יכול לקבל עדכונים לפונקציונליות מחוץ למחזור הגרסאות הרגיל של Android.

רכיבי השירות

המודול ExtServices מכיל את השירותים הבאים.

DisplayHashingService

ב-Android 12, DisplayHashingService משמש ליצירת מכונה של DisplayHash למאגר הזמני שצוין. הוא משמש גם לאימות שהמערכת יצרה גיבוב תצוגה ספציפי. כשמפעילים גיבוב לתצוגה, מבצע הקריאה החוזרת יכול לציין באיזה מבין אלגוריתמי הגיבוב הנתמכים הוא רוצה להשתמש.

TextClassifierService

רכיב השירות TextClassifierService תומך בממשקי TextClassifierAPI ובתכונות של Android, כמו בחירת טקסט חכמה והצעות חכמות בהתראות. המודול ExtServices מכיל את סיווג הטקסט שמוגדר כברירת מחדל, שמאומת על ידי בדיקת CTS‏ TextClassifierPolicyTest.java.

אם צריך, אפשר להגדיר שירות מותאם אישית של סיווג טקסט על ידי ציון הערך config_defaultTextClassifierPackage בקטע config.xml. סיווגים מותאמים אישית של טקסט יכולים להסתמך על סיווג הטקסט שמוגדר כברירת מחדל. לשם כך, צריך לבצע קריאה ל-TextClassifierService.getDefaultTextClassifierImplementation(Context) כדי לקבל מופע שלו.

InlineSuggestionRenderService

רכיב השירות InlineSuggestionRenderService מאפשר להציג הצעות בשורה בסרגל ההצעות במקלדת. השירות הזה נקרא כדי להציג אובייקט View שמכיל את ההצעה בתוך הטקסט לתהליך המילוי האוטומטי החדש בתוך הטקסט. ההטמעה שמוגדרת כברירת מחדל לשירות ה-Renderer הזה קוראת ל-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 לא מספק אפשרויות התאמה אישית.

בדיקה

חבילה לבדיקות תאימות (CTS) של Android מאמתת את הפונקציונליות של מודול ExtServices על ידי הרצת קבוצה מקיפה של בדיקות CTS בכל גרסה של המודול. בנוסף, ערכת הבדיקה Mainline (MTS) מכילה גם כמה בדיקות של ExtServices. הרשימה המלאה של בדיקות ExtServices היא: