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
od Androida 12TextClassifierService
od Androida 11InlineSuggestionsRenderService
od Androida 11AutofillFieldClassificationService
od Androida 10NotificationAssistantService
od Androida 10ResolverRankerService
od Androida 10CacheQuotaService
od Androida 10
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 TextClassifier
interfejsy 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_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 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 zframeworks/base/apex/extservices
)java/
(pliki zpackages/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 TextClassifier
klas implementacjiframeworks/base/core/
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ł 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:
Zmiany konfiguracji. Zweryfikowane za pomocą testu CTS
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
.TextClassifier
config. Zweryfikowane przez test CTScts/TextClassifierPolicyTest.java
.Sugestia autouzupełniania w tekście. Zweryfikowane za pomocą testów CTS w
cts/inline/
.