ExtServices

Das ExtServices-Modul aktualisiert Framework-Komponenten für die wichtigsten Betriebssystemfunktionen, z. B. Benachrichtigungsrangfolge, Autofill-Textabgleichsstrategien, Speichercache, Paket-Watchdog und andere Dienste, die kontinuierlich ausgeführt werden. Dieses Modul kann aktualisiert werden, d. h. es kann außerhalb des normalen Android-Releasezyklus Updates für Funktionen 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 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 Textklassifizierungsdienst konfigurieren, indem Sie config_defaultTextClassifierPackage in config.xml angeben. 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 Namen des ExtServices-Pakets (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 von packages/modules/ExtServices/res, packages/modules/ExtServices/src, packages/modules/ExtServices/tests und Dateien für neue Funktion)
  • 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

Unter Android 11 können Sie einen benutzerdefinierten Textklassifizierungsdienst 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: