Usługi zewnętrzne

Moduł ExtServices aktualizuje komponenty frameworku dla podstawowych funkcji systemu operacyjnego, takich jak ranking powiadomień, strategie autouzupełniania tekstu, pamięć podręczna, moduł monitorowania pakietów i inne usługi, które działają nieprzerwanie. Ten moduł można aktualizować, co oznacza, że można aktualizować jego funkcje poza normalnym cyklem publikacji 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. Jest on również używany do sprawdzania, czy wyświetlany przez system kod kreskowy został wygenerowany przez system. Podczas generowania wyświetlanego hasza wywołujący może określić, którego z obsługiwanych algorytmów haszowania chce użyć.

Usługa TextClassifier

TextClassifierService komponent usługi obsługuje interfejsy API TextClassifieroraz funkcje Androida, takie jak inteligentny wybór tekstu i inteligentne sugestie w powiadomieniach. Moduł ExtServices zawiera domyślny klasyfikator tekstu weryfikowany przez test CTS TextClassifierPolicyTest.java.

W razie potrzeby możesz skonfigurować niestandardową usługę klasyfikatora tekstu, podając wartość config_defaultTextClassifierPackage w config.xml. Klasyfikatory tekstu niestandardowego mogą zależeć od domyślnego klasyfikatora tekstu, wywołując funkcję TextClassifierService.getDefaultTextClassifierImplementation(Context), aby uzyskać jej instancję.

InlineSuggestionRenderService

Komponent usługi InlineSuggestionRenderService umożliwia wyświetlanie wbudowanych sugestii na pasku podpowiedzi klawiatury. Ta usługa jest wywoływana w celu renderowania obiektu View zawierającego wbudowaną sugestię na potrzeby nowego procesu autouzupełniania. Domyślna implementacja tej usługi renderowania wywołuje funkcję androidx.autofill.inline.Renderer, aby renderować sugestię. Takie zachowanie jest weryfikowane w ramach testów CTS w narzędziu /autofillservice/cts/inline/.

Nazwa pakietu

Urządzenia z Androidem 11 muszą mieć ustawioną wartość parametru config_servicesExtensionPackage (w pliku 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 katalogu frameworks/base/apex/extservices (który jest podkatalogiem katalogu frameworks/base project) do katalogu packages/modules/ExtServices.

Nowa struktura projektu packages/modules/ExtServices:

  • apex/ (pliki z frameworks/base/apex/extservices)
  • java/ (pliki z wersji packages/modules/ExtServices/res, packages/modules/ExtServices/src, packages/modules/ExtServices/tests oraz pliki dla nowej funkcji)
  • jni/ (pliki związane z nową funkcją)
  • native/ (pliki dla nowej funkcji)

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

Format modułu

W Androidzie 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ę klasyfikacji tekstu, która wywołuje domyślną usługę klasyfikacji tekstu (nie jest to jednak zalecane). W Androidzie 10 moduł ExtServices nie udostępnia opcji dostosowywania.

Testowanie

Pakiet testów zgodności Androida (CTS) sprawdza funkcjonalność modułu ExtServices, wykonując kompleksowy zestaw testów CTS dla każdej wersji modułu. Oprócz tego pakiet Mainline Test Suite (MTS) zawiera też kilka testów ExtServices. Pełna lista testów ExtServices: