ExtServices

Moduł ExtServices aktualizuje komponenty platformy pod kątem podstawowych funkcji systemu operacyjnego, takich jak ranking powiadomień, strategie dopasowywania tekstu w autouzupełnianiu, pamięć podręczna, 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 wydawania Androida.

Komponenty usługi

Moduł ExtServices zawiera te usługi:

DisplayHashingService

W Androidzie 12 funkcja DisplayHashingService służy do generowania instancji DisplayHash dla określonego bufora. Służy też do sprawdzania, czy dany hash wyświetlenia został wygenerowany przez system. Podczas generowania skrótu wyświetlania wywołujący może określić, którego z obsługiwanych algorytmów mieszania chce użyć.

TextClassifierService

Komponent usługi TextClassifierService obsługuje TextClassifierinterfejsy API i funkcje Androida, 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ę klasyfikacji tekstu, określając config_defaultTextClassifierPackageconfig.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 podpowiedzi w tekście na pasku podpowiedzi na klawiaturze. Ta usługa jest wywoływana w celu renderowania obiektu View zawierającego sugestię wbudowaną w ramach nowego przepływu autouzupełniania wbudowanego. Domyślna implementacja tej usługi renderowania wywołuje funkcję androidx.autofill.inline.Renderer, aby renderować sugestię. To zachowanie jest weryfikowane przez testy CTS w /autofillservice/cts/inline/.

Nazwa pakietu

Urządzenia z Androidem 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 jest taka:

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

Granica modułu ExtServices znajduje się w packages/modules/ExtServices. Android 11 przenosi też kilka TextClassifierklas implementacjiframeworks/base/core/frameworks/base/core/.

Format modułu

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

Dostosowywanie

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

Testowanie

Pakiet testów zgodności Androida (CTS) weryfikuje funkcjonalność modułu ExtServices, przeprowadzając kompleksowy zestaw testów CTS w przypadku każdej wersji modułu. Dodatkowo pakiet testów Mainline (MTS) zawiera też kilka testów ExtServices. Pełna lista testów ExtServices: