ExtServices

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

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 TextClassifierAPIs 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 von frameworks/base/apex/extservices)
  • java/ (Dateien aus packages/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: