Das ExtServices-Modul aktualisiert Framework-Komponenten für grundlegende Betriebssystemfunktionen wie das Ranking von Benachrichtigungen, Strategien für den automatischen Textabgleich, den Speichercache, den Paket-Watchdog und andere kontinuierlich ausgeführte Dienste. Dieses Modul ist aktualisierbar, d. h., es kann Funktionsupdates außerhalb des normalen Android-Releasezyklus erhalten.
Dienstkomponenten
Das ExtServices-Modul enthält die folgenden Dienste.
DisplayHashingService
ab Android 12TextClassifierService
ab Android 11InlineSuggestionsRenderService
ab Android 11AutofillFieldClassificationService
ab Android 10NotificationAssistantService
ab Android 10ResolverRankerService
ab Android 10CacheQuotaService
ab Android 10
DisplayHashingService
In Android 12 wird DisplayHashingService
verwendet, um eine Instanz von DisplayHash
für den angegebenen Puffer zu generieren. Außerdem wird damit überprüft, ob ein bestimmter Display-Hash vom System generiert wurde. Beim Generieren eines Display-Hashes kann der Aufrufer angeben, welchen der unterstützten Hash-Algorithmen er verwenden möchte.
TextClassifierService
Die Dienstkomponente TextClassifierService
unterstützt TextClassifier
APIs und Android-Funktionen wie die intelligente Textauswahl und intelligente Vorschläge in Benachrichtigungen. Das Modul „ExtServices“ enthält den Standard-Textklassifikator, der durch den CTS-Test TextClassifierPolicyTest.java
überprüft wird.
Bei Bedarf können Sie einen benutzerdefinierten Textklassifikatordienst konfigurieren. Geben Sie dazu config_defaultTextClassifierPackage
in config.xml
an.
Benutzerdefinierte Textklassifikatoren können vom Standard-Textklassifikator abhängen. Rufen Sie dazu TextClassifierService.getDefaultTextClassifierImplementation(Context)
auf, um eine Instanz davon zu erhalten.
InlineSuggestionRenderService
Mit der Dienstkomponente InlineSuggestionRenderService
können Inline-Vorschläge in der Leiste mit Vorschlägen der Tastatur angezeigt werden. Dieser Dienst wird aufgerufen, um ein View
-Objekt zu rendern, das den Inline-Vorschlag für den neuen Inline-Autofill-Vorgang enthält.
Die Standardimplementierung für diesen Rendererdienst ruft androidx.autofill.inline.Renderer
auf, um den Vorschlag zu rendern. Dieses Verhalten wird durch CTS-Tests in /autofillservice/cts/inline/
überprüft.
Paketname
Auf Geräten mit Android 11 muss config_servicesExtensionPackage
(in frameworks/base/core/res/res/values/config.xml
) auf den Paketnamen „ExtServices“ (com.android.ext.services
) festgelegt sein. Diese Konfigurationsänderung wird durch den CTS-Test cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
überprüft.
Modulgrenze
In Android 12 wird der Code des ExtServices-Moduls aus frameworks/base/apex/extservices
(ein Unterverzeichnis von frameworks/base project
) und packages/modules/ExtServices
verschoben.
Die neue Projektstruktur für packages/modules/ExtServices
sieht so aus:
apex/
(Dateien vonframeworks/base/apex/extservices
)java/
(Dateien auspackages/modules/ExtServices/res
,packages/modules/ExtServices/src
,packages/modules/ExtServices/tests
und Dateien für das neue Feature)jni/
(Dateien für neue Funktion)native/
(Dateien für neue Funktion)
Die Modulgrenze von „ExtServices“ befindet sich in packages/modules/ExtServices
. Außerdem werden in Android 11 mehrere TextClassifier
-Implementierungsklassen aus frameworks/base/core/
verschoben.
Modulformat
In Android 11 hat das ExtServices-Modul (com.android.ext.services
) das Format APEX. Unter Android 10 ist dieses Modul im APK-Format.
Personalisierung
In Android 11 können Sie einen benutzerdefinierten Textklassifikatordienst konfigurieren, der den Standard-Textklassifikator aufruft. Dies wird jedoch nicht empfohlen. Unter Android 10 bietet das ExtServices-Modul keine Anpassungsoptionen.
Testen
Die Android Compatibility Test Suite (CTS) prüft die Funktionalität des ExtServices-Moduls, indem für jede Modulversion eine umfassende Reihe von CTS-Tests ausgeführt wird. Außerdem enthält die Mainline Test Suite (MTS) mehrere ExtServices-Tests. Die vollständige Liste der ExtServices-Tests sieht so aus:
Konfigurationsänderungen Durch den CTS-Test bestätigt
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
.TextClassifier
-Konfiguration. Durch CTS-Testcts/TextClassifierPolicyTest.java
verifiziert.Inline-Vorschlag für automatisches Ausfüllen Geprüft durch CTS-Tests in
cts/inline/
.