Usługi Ext

Moduł ExtServices aktualizuje komponenty platformy dla podstawowych funkcjonalności systemu operacyjnego, takich jak ranking powiadomień, strategie autouzupełniania tekstu, pamięć podręczna, watchdog pakietów i inne usługi, które działają nieprzerwanie. Moduł ten można aktualizować, co oznacza, że ​​może otrzymywać aktualizacje funkcjonalności poza normalnym cyklem wydawniczym Androida.

Komponenty usług

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

Usługa DisplayHashing

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

Usługa TextClassifier

Komponent 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 za pomocą testu 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 instancji.

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ę Inline dla nowego przepływu autouzupełniania Inline. Domyślna implementacja tej usługi renderowania wywołuje funkcję androidx.autofill.inline.Renderer w celu wyrenderowania 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 Androidzie 12 kod modułu ExtServices został przeniesiony z frameworks/base/apex/extservices (jest to podkatalog 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 nowej funkcji)
  • native/ (pliki nowej funkcji)

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

Format modułu

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

Dostosowywanie

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

Testowanie

Pakiet testów zgodności systemu Android (CTS) weryfikuje funkcjonalność modułu ExtServices, uruchamiają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: