Das ExtServices-Modul aktualisiert Framework-Komponenten für wichtige Betriebssystemfunktionen wie Benachrichtigungsranking, Autofill-Strategien für Textabgleich, Speichercache, Package Watchdog und andere Dienste, die kontinuierlich ausgeführt werden. Dieses Modul ist aktualisierbar. Das bedeutet, dass es außerhalb des normalen Android-Releasezyklus Funktionsupdates erhalten kann.
Dienstkomponenten
Das Modul „ExtServices“ 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 geprüft, ob ein bestimmter Display-Hash vom System generiert wurde. Beim Generieren eines Display-Hashs kann der Aufrufer angeben, welcher der unterstützten Hash-Algorithmen verwendet werden soll.
TextClassifierService
Die Dienstkomponente TextClassifierService
unterstützt TextClassifier
-APIs und Android-Funktionen wie die intelligente Textauswahl und intelligente Vorschläge in Benachrichtigungen. Das ExtServices-Modul enthält den Standard-Textklassifikator, der durch den CTS-Test TextClassifierPolicyTest.java
überprüft wird.
Bei Bedarf können Sie einen benutzerdefinierten Textklassifizierungsdienst konfigurieren, indem Sie config_defaultTextClassifierPackage
in config.xml
angeben.
Benutzerdefinierte Textklassifizierer können vom Standard-Textklassifizierer abhängen, indem sie TextClassifierService.getDefaultTextClassifierImplementation(Context)
aufrufen, um eine Instanz davon zu erhalten.
InlineSuggestionRenderService
Die Dienstkomponente InlineSuggestionRenderService
ermöglicht die Anzeige von Inline-Vorschlägen in der Leiste mit Tastaturvorschlägen. Dieser Dienst wird aufgerufen, um ein View
-Objekt zu rendern, das den Inline-Vorschlag für den neuen Inline-Autofill-Ablauf enthält.
Die Standardimplementierung für diesen Renderingdienst 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 von ExtServices (com.android.ext.services
) festgelegt werden. 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 ExtServices-Modulcode 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 die neue Funktion)jni/
(Dateien für neue Funktion)native/
(Dateien für neue Funktion)
Die Modulgrenze von ExtServices befindet sich in packages/modules/ExtServices
. In Android 11 werden außerdem mehrere TextClassifier
-Implementierungsklassen aus frameworks/base/core/
verschoben.
Modulformat
In Android 11 ist das ExtServices-Modul (com.android.ext.services
) im APEX-Format. In Android 10 ist dieses Modul im APK-Format.
Personalisierung
In Android 11 können Sie einen benutzerdefinierten Dienst zur Textklassifizierung konfigurieren, der den Standarddienst zur Textklassifizierung aufruft. Dies wird jedoch nicht empfohlen. In Android 10 bietet das ExtServices-Modul keine Anpassungsoptionen.
Testen
Die Android Compatibility Test Suite (CTS) überprüft die Funktionalität des ExtServices-Moduls, indem bei jeder 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-Test bestätigtcts/TextClassifierPolicyTest.java
.Inline-Vorschlag für automatisches Ausfüllen. Durch CTS-Tests in
cts/inline/
bestätigt.