Usługi Ext

Moduł ExtServices aktualizuje komponenty frameworka dla podstawowych funkcji systemu operacyjnego, takich jak ranking powiadomień, strategie autouzupełniania dopasowywania tekstu, pamięć podręczna pamięci masowej, nadzór nad pakietami i inne usługi, które działają w sposób ciągły. Ten moduł można aktualizować, co oznacza, że ​​może otrzymywać aktualizacje funkcji poza normalnym cyklem wydawniczym Androida.

Komponenty usługi

Moduł ExtServices zawiera następujące usługi.

DisplayHashingService

W systemie Android 12 DisplayHashingService służy do generowania wystąpienia DisplayHash dla określonego bufora. Służy również do sprawdzania, czy system wygenerował określony skrót wyświetlania. Podczas generowania skrótu wyświetlania wywołujący może określić, którego z obsługiwanych algorytmów haszowania chce użyć.

TextClassifierService

Składnik usługi TextClassifierService obsługuje interfejsy API TextClassifier i funkcje systemu Android, takie jak inteligentne zaznaczanie tekstu i inteligentne sugestie w powiadomieniach. Moduł ExtServices zawiera domyślny klasyfikator tekstu, który jest weryfikowany przez test CTS TextClassifierPolicyTest.java .

W razie potrzeby możesz skonfigurować niestandardową usługę klasyfikatora tekstu, określając config_defaultTextClassifierPackage w config.xml . Niestandardowe klasyfikatory tekstu mogą zależeć od domyślnego klasyfikatora tekstu, wywołując TextClassifierService.getDefaultTextClassifierImplementation(Context) w celu uzyskania jego wystąpienia.

InlineSuggestionRenderService

Komponent usługi InlineSuggestionRenderService umożliwia wyświetlanie sugestii wbudowanych na pasku sugestii klawiatury. Ta usługa jest wywoływana w celu renderowania obiektu View zawierającego sugestię w tekście dla nowego przepływu autouzupełniania w wierszu. Domyślna implementacja tej usługi renderowania wywołuje androidx.autofill.inline.Renderer w celu renderowania sugestii. To zachowanie jest weryfikowane przez testy CTS w /autofillservice/cts/inline/ .

Nazwa pakietu

Urządzenia z systemem Android 11 muszą ustawić config_servicesExtensionPackage (w frameworks/base/core/res/res/values/config.xml ) na nazwę pakietu ExtServices ( com.android.ext.services ). Ta zmiana konfiguracji jest weryfikowana przez test CTS cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java .

Granica modułu

W systemie Android 12 kod modułu ExtServices jest przenoszony z frameworks/base/apex/extservices (jest to podkatalog projektu frameworks/base project ) i packages/modules/ExtServices .

Nowa struktura projektu dla packages/modules/ExtServices wygląda następująco:

  • apex/ (pliki z frameworks/base/apex/extservices )
  • java/ (pliki z packages/modules/ExtServices/res , packages/modules/ExtServices/src , packages/modules/ExtServices/tests i pliki nowej funkcji)
  • jni/ (pliki dla nowej funkcji)
  • native/ (pliki dla nowej funkcji)

Granica modułu ExtServices znajduje się w packages/modules/ExtServices . Android 11 przenosi również kilka klas implementacji TextClassifier z frameworks/base/core/ .

Format modułu

W systemie Android 11 moduł ExtServices ( com.android.ext.services ) jest w formacie APEX . W Androidzie 10 ten moduł jest w formacie APK.

Dostosowywanie

W Androidzie 11 możesz skonfigurować niestandardową usługę klasyfikatora tekstu, która wywołuje domyślny klasyfikator tekstu (jednak nie jest to zalecane). W systemie Android 10 moduł ExtServices nie zapewnia opcji dostosowywania.

Testowanie

Android Compatibility Test Suite (CTS) weryfikuje funkcjonalność modułu ExtServices, przeprowadzając kompleksowy zestaw testów CTS w każdej wersji modułu. Ponadto Mainline Test Suite (MTS) zawiera również kilka testów ExtServices. Pełna lista testów ExtServices wygląda następująco: