ExtServices

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

רכיבי שירות

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

DisplayHashingService

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

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 לא מספק אפשרויות להתאמה אישית.

בדיקה

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