ExtServices

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

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/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: