שירותים חיצוניים

המודול 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 היא: