Moduł ExtServices aktualizuje komponenty frameworka dla podstawowych funkcji systemu operacyjnego, takich jak ranking powiadomień, strategie autouzupełniania dopasowywania tekstu, pamięć podręczna pamięci masowej, 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 wydawniczym Androida.
Komponenty usługi
Moduł ExtServices zawiera następujące usługi.
DisplayHashingService
począwszy od Androida 12TextClassifierService
począwszy od Androida 11InlineSuggestionsRenderService
począwszy od Androida 11AutofillFieldClassificationService
począwszy od Androida 10NotificationAssistantService
począwszy od Androida 10ResolverRankerService
począwszy od Androida 10CacheQuotaService
począwszy od Androida 10
DisplayHashingService
W systemie Android 12 DisplayHashingService
służy do generowania wystąpienia DisplayHash
dla określonego bufora. Służy również do sprawdzania, czy system wygenerował określony skrót wyświetlania. Podczas generowania skrótu wyświetlania wywołujący może określić, którego z obsługiwanych algorytmów haszowania chce użyć.
TextClassifierService
Składnik 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 przez test 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 wystąpienia.
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ę w tekście dla nowego przepływu autouzupełniania w wierszu. Domyślna implementacja tej usługi renderowania wywołuje androidx.autofill.inline.Renderer
w celu renderowania 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 systemie Android 12 kod modułu ExtServices jest przenoszony z frameworks/base/apex/extservices
(jest to podkatalog projektu frameworks/base project
) i packages/modules/ExtServices
.
Nowa struktura projektu dla packages/modules/ExtServices
wygląda następująco:
-
apex/
(pliki zframeworks/base/apex/extservices
) -
java/
(pliki zpackages/modules/ExtServices/res
,packages/modules/ExtServices/src
,packages/modules/ExtServices/tests
i pliki 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 również kilka klas implementacji TextClassifier
z frameworks/base/core/
.
Format modułu
W systemie Android 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ę klasyfikatora tekstu, która wywołuje domyślny klasyfikator tekstu (jednak nie jest to zalecane). W systemie Android 10 moduł ExtServices nie zapewnia opcji dostosowywania.
Testowanie
Android Compatibility Test Suite (CTS) weryfikuje funkcjonalność modułu ExtServices, przeprowadzają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:
Zmiany konfiguracji. Zweryfikowane przez test CTS
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
.TextClassifier
. Zweryfikowane przez test CTScts/TextClassifierPolicyTest.java
.Wbudowana sugestia autouzupełniania. Zweryfikowane przez testy CTS w
cts/inline/
.