ExtServices

Das ExtServices-Modul aktualisiert Framework-Komponenten für Kernfunktionen des Betriebssystems, wie z. B. Benachrichtigungsranking, Strategien zum automatischen Ausfüllen von Texten, Speichercache, Paketüberwachung und andere Dienste, die kontinuierlich ausgeführt werden. Dieses Modul ist aktualisierbar, was bedeutet, dass es außerhalb des normalen Android-Release-Zyklus Funktionsaktualisierungen erhalten kann.

Servicekomponenten

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. Es wird auch verwendet, um zu überprüfen, ob ein bestimmter Anzeige-Hash vom System generiert wurde. Beim Generieren eines Display-Hashs kann der Aufrufer angeben, welchen der unterstützten Hashing-Algorithmen er verwenden möchte.

TextClassifierService

Die TextClassifierService Dienstkomponente unterstützt TextClassifier APIs und Android-Funktionen wie intelligente Textauswahl und intelligente Vorschläge in Benachrichtigungen. Das ExtServices-Modul enthält den Standardtextklassifizierer, 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 Standardtextklassifizierer abhängen, indem sie TextClassifierService.getDefaultTextClassifierImplementation(Context) aufrufen, um eine Instanz davon abzurufen.

InlineSuggestionRenderService

Die Dienstkomponente InlineSuggestionRenderService ermöglicht die Anzeige von Inline-Vorschlägen in der Tastaturvorschlagsleiste. Dieser Dienst wird aufgerufen, um ein View Objekt zu rendern, das den Inline-Vorschlag für den neuen Inline-Autofill-Fluss enthält. Die Standardimplementierung für diesen Renderer-Dienst ruft androidx.autofill.inline.Renderer auf, um den Vorschlag zu rendern. Dieses Verhalten wird durch CTS-Tests in /autofillservice/cts/inline/ überprüft.

Paketnamen

Geräte mit Android 11 müssen config_servicesExtensionPackage (in frameworks/base/core/res/res/values/config.xml ) auf den ExtServices-Paketnamen ( com.android.ext.services ) setzen. 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 (dies ist ein Unterverzeichnis von frameworks/base project “) und packages/modules/ExtServices verschoben.

Die neue Projektstruktur für packages/modules/ExtServices sieht wie folgt aus:

  • apex/ (Dateien aus frameworks/base/apex/extservices “)
  • java/ (Dateien aus 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 ExtServices-Modulgrenze liegt in packages/modules/ExtServices . Android 11 verschiebt außerdem mehrere TextClassifier Implementierungsklassen aus frameworks/base/core/ .

Modulformat

In Android 11 liegt das ExtServices-Modul ( com.android.ext.services ) im APEX- Format vor. In Android 10 liegt dieses Modul im APK-Format vor.

Anpassen

In Android 11 können Sie einen benutzerdefinierten Textklassifizierungsdienst konfigurieren, der den Standard-Textklassifizierungsdienst 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 sie bei jeder Modulversion eine umfassende Reihe von CTS-Tests durchführt. Darüber hinaus enthält die Mainline Test Suite (MTS) auch mehrere ExtServices-Tests. Die vollständige Liste der ExtServices-Tests lautet wie folgt: