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