Moduł ExtServices aktualizuje komponenty platformy dla podstawowych funkcjonalności systemu operacyjnego, takich jak ranking powiadomień, strategie autouzupełniania tekstu, pamięć podręczna, watchdog pakietów i inne usługi, które działają nieprzerwanie. Moduł ten można aktualizować, co oznacza, że może otrzymywać aktualizacje funkcjonalności poza normalnym cyklem wydawniczym Androida.
Komponenty usług
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
Usługa DisplayHashing
W systemie Android 12 DisplayHashingService
służy do generowania instancji DisplayHash
dla określonego bufora. Służy także do sprawdzania, czy system wygenerował określony skrót wyświetlacza. Podczas generowania skrótu wyświetlacza obiekt wywołujący może określić, którego z obsługiwanych algorytmów mieszania chce użyć.
Usługa TextClassifier
Komponent 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 za pomocą testu 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 instancji.
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ę Inline dla nowego przepływu autouzupełniania Inline. Domyślna implementacja tej usługi renderowania wywołuje funkcję androidx.autofill.inline.Renderer
w celu wyrenderowania 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 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
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 nowej funkcji) -
native/
(pliki nowej funkcji)
Granica modułu ExtServices znajduje się w packages/modules/ExtServices
. Android 11 przenosi także kilka klas implementacji TextClassifier
z frameworks/base/core/
.
Format modułu
W Androidzie 11 moduł ExtServices ( com.android.ext.services
) ma format APEX . W systemie Android 10 moduł ten jest w formacie APK.
Dostosowywanie
W systemie Android 11 możesz skonfigurować niestandardową usługę klasyfikatora tekstu, która wywołuje domyślny klasyfikator tekstu (nie jest to jednak zalecane). W systemie Android 10 moduł ExtServices nie zapewnia opcji dostosowywania.
Testowanie
Pakiet testów zgodności systemu Android (CTS) weryfikuje funkcjonalność modułu ExtServices, uruchamiają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 w konfiguracji. Zweryfikowano za pomocą testu CTS
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
.Konfiguracja
TextClassifier
. Zweryfikowano za pomocą testu CTScts/TextClassifierPolicyTest.java
.Autouzupełnianie sugestii wbudowanej. Zweryfikowano testami CTS w
cts/inline/
.