ExtServices

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

רכיבי שירות

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

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: