ExtServices

Das Modul „ExtServices“ aktualisiert Framework-Komponenten für wichtige Betriebssystemfunktionen wie die Benachrichtigungsrangfolge, Strategien für den Textabgleich beim automatischen Ausfüllen, den Speichercache, den Paket-Watchdog und andere Dienste, die kontinuierlich ausgeführt werden. Dieses Modul kann aktualisiert werden. 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 überprüft, ob ein bestimmter Display-Hash vom System generiert wurde. Beim Generieren eines Display-Hash kann der Aufrufer angeben, welcher der unterstützten Hash-Algorithmen verwendet werden soll.

TextClassifierService

Die TextClassifierService Dienstkomponente 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 Textklassifikator konfigurieren, indem Sie config_defaultTextClassifierPackage in config.xml angeben. Benutzerdefinierte Textklassifikatoren können vom Standard-Textklassifikator abhängen, indem sie TextClassifierService.getDefaultTextClassifierImplementation(Context) aufrufen, um eine Instanz davon zu erhalten.

InlineSuggestionRenderService

Mit der Dienstkomponente InlineSuggestionRenderService können Inline-Vorschläge in der Leiste mit Vorschlägen angezeigt werden. 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 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.

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 Code des Moduls „ExtServices“ aus frameworks/base/apex/extservices (ein Unterverzeichnis des Projekts frameworks/base project) und packages/modules/ExtServicesverschoben.

Die neue Projektstruktur für packages/modules/ExtServices sieht so 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 Funktionen)
  • jni/ (Dateien für neue Funktionen)
  • native/ (Dateien für neue Funktionen)

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 hat das Modul „ExtServices“ (com.android.ext.services) das APEX Format. In Android 10 hat dieses Modul das APK-Format.

Anpassung

In Android 11 können Sie einen benutzerdefinierten Text klassifikator konfigurieren, der den Standard-Text klassifikator aufruft. Das wird jedoch nicht empfohlen. In Android 10 bietet das Modul „ExtServices“ keine Anpassungsoptionen.

Test

Die Android Compatibility Test Suite (CTS) überprüft die Funktionalität des Moduls „ExtServices“, indem bei jeder Modulversion eine umfassende Reihe von CTS-Tests ausgeführt wird. Darüber hinaus enthält die Mainline Test Suite (MTS) auch mehrere ExtServices-Tests. Die vollständige Liste der ExtServices-Tests sieht so aus: