המודול ExtServices מעדכן את רכיבי המסגרת של פונקציונליות הליבה של מערכת ההפעלה, כמו דירוג התראות, אסטרטגיות של מילוי אוטומטי בהתאמה לטקסט, מטמון אחסון, מעקב אחר חבילות ושירותים אחרים שפועלים באופן קבוע. אפשר לעדכן את המודול הזה, כלומר הוא יכול לקבל עדכונים לפונקציונליות מחוץ למחזור הגרסאות הרגיל של Android.
רכיבי השירות
המודול ExtServices מכיל את השירותים הבאים.
DisplayHashingService
החל מ-Android 12TextClassifierService
החל מ-Android 11InlineSuggestionsRenderService
החל מ-Android 11AutofillFieldClassificationService
החל מ-Android 10NotificationAssistantService
החל מ-Android 10ResolverRankerService
החל מ-Android 10CacheQuotaService
החל מ-Android 10
DisplayHashingService
ב-Android 12, DisplayHashingService
משמש ליצירת מכונה של DisplayHash
למאגר הזמני שצוין. הוא משמש גם לאימות שגיבוב ספציפי של תצוגה נוצר על ידי המערכת. כשמפעילים גיבוב לתצוגה, מבצע הקריאה החוזרת יכול לציין באיזה מבין אלגוריתמי הגיבוב הנתמכים הוא רוצה להשתמש.
TextClassifierService
רכיב השירות TextClassifierService
תומך בממשקי TextClassifier
API ובתכונות של 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 היא:
שינויים בתצורה. אומת על ידי בדיקת CTS
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
.TextClassifier
config. אומת על ידי בדיקת CTScts/TextClassifierPolicyTest.java
.הצעה למילוי אוטומטי בשורה. מאומתת על ידי בדיקות CTS ב-
cts/inline/
.