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.
- DisplayHashingServiceab Android 12
- TextClassifierServiceab Android 11
- InlineSuggestionsRenderServiceab Android 11
- AutofillFieldClassificationServiceab Android 10
- NotificationAssistantServiceab Android 10
- ResolverRankerServiceab Android 10
- CacheQuotaServiceab 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 von- frameworks/base/apex/extservices)
- java/(Dateien aus- packages/modules/ExtServices/res,- packages/modules/ExtServices/src,- packages/modules/ExtServices/testsund 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ätigt- cts/TextClassifierPolicyTest.java.
- Inline-Vorschlag für automatisches Ausfüllen. Durch CTS-Tests in - cts/inline/bestätigt.
