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 12TextClassifierService
od Androida 11InlineSuggestionsRenderService
w Androidzie 11AutofillFieldClassificationService
w Androidzie 10NotificationAssistantService
w Androidzie 10ResolverRankerService
w Androidzie 10CacheQuotaService
od Androida 10
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ć.
TextClassifierService
TextClassifierService
komponent usługi obsługuje interfejsy API TextClassifier
oraz funkcje Androida, takie jak inteligentny wybór tekstu i inteligentne sugestie w powiadomieniach. Moduł ExtServices zawiera domyślny klasyfikator tekstu, który jest weryfikowany przez test CTSTextClassifierPolicyTest.java
.
W razie potrzeby możesz skonfigurować niestandardową usługę klasyfikatora tekstu, podając wartość config_defaultTextClassifierPackage
w polu config.xml
.
Klasyfikatory tekstu niestandardowego mogą zależeć od domyślnego klasyfikatora tekstu, wywołując funkcję TextClassifierService.getDefaultTextClassifierImplementation(Context)
, aby uzyskać jego instancję.
InlineSuggestionRenderService
Komponent usługi InlineSuggestionRenderService
umożliwia wyświetlanie sugestii w tekście na pasku sugestii na klawiaturze. Ta usługa jest wywoływana w celu renderowania obiektu View
zawierającego sugestię w ramce nowego procesu autouzupełniania w ramce.
Domyślna implementacja tej usługi renderowania wywołuje funkcję androidx.autofill.inline.Renderer
, aby zrenderować sugestię. Takie działanie jest weryfikowane przez testy CTS w /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 zframeworks/base/apex/extservices
)java/
(pliki z wersjipackages/modules/ExtServices/res
,packages/modules/ExtServices/src
,packages/modules/ExtServices/tests
oraz pliki dla 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 też kilka klas implementacji TextClassifier
z poziomu 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ę 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:
Zmiany w konfiguracji. Weryfikowane przez test CTS
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
.TextClassifier
konfiguracji. Zweryfikowane przez test CTScts/TextClassifierPolicyTest.java
.Podpowiedź autouzupełniania w ramce. Zweryfikowane przez testy CTS w
cts/inline/
.