Le module ExtServices met à jour les composants de l'infrastructure pour les fonctionnalités de base du système d'exploitation, telles que le classement des notifications, les stratégies de correspondance de texte de remplissage automatique, le cache de stockage, le chien de garde des packages et d'autres services qui s'exécutent en continu. Ce module peut être mis à jour, ce qui signifie qu'il peut recevoir des mises à jour de fonctionnalités en dehors du cycle de publication normal d'Android.
Composants de services
Le module ExtServices contient les services suivants.
DisplayHashingService
à partir d'Android 12TextClassifierService
à partir d'Android 11InlineSuggestionsRenderService
à partir d'Android 11AutofillFieldClassificationService
à partir d'Android 10NotificationAssistantService
à partir d'Android 10ResolverRankerService
à partir d'Android 10CacheQuotaService
à partir d'Android 10
DisplayHashingService
Dans Android 12, DisplayHashingService
est utilisé pour générer une instance de DisplayHash
pour le tampon spécifié. Il est également utilisé pour vérifier qu'un hachage d'affichage spécifique a été généré par le système. Lors de la génération d'un hachage d'affichage, l'appelant peut spécifier lequel des algorithmes de hachage pris en charge il souhaite utiliser.
TextClassifierServiceTextClassifierService
Le composant de service TextClassifierService
prend en charge les API TextClassifier
et les fonctionnalités Android telles que la sélection intelligente de texte et les suggestions intelligentes dans les notifications. Le module ExtServices contient le classificateur de texte par défaut, qui est vérifié par le test CTS TextClassifierPolicyTest.java
.
Si nécessaire, vous pouvez configurer un service de classification de texte personnalisé en spécifiant config_defaultTextClassifierPackage
dans config.xml
. Les classificateurs de texte personnalisés peuvent dépendre du classificateur de texte par défaut en appelant TextClassifierService.getDefaultTextClassifierImplementation(Context)
pour en obtenir une instance.
InlineSuggestionRenderService
Le composant de service InlineSuggestionRenderService
permet d'afficher les suggestions en ligne dans la bande de suggestion du clavier. Ce service est appelé pour restituer un objet View
contenant la suggestion en ligne pour le nouveau flux de remplissage automatique en ligne. L'implémentation par défaut de ce service de rendu appelle androidx.autofill.inline.Renderer
pour rendre la suggestion. Ce comportement est vérifié par les tests CTS dans /autofillservice/cts/inline/
.
Nom du paquet
Les appareils exécutant Android 11 doivent définir config_servicesExtensionPackage
(dans frameworks/base/core/res/res/values/config.xml
) sur le nom du package ExtServices ( com.android.ext.services
). Ce changement de configuration est vérifié par le test CTS cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
.
Limite du module
Dans Android 12, le code du module ExtServices est déplacé de frameworks/base/apex/extservices
(il s'agit d'un sous-répertoire du frameworks/base project
) et packages/modules/ExtServices
.
La nouvelle structure de projet pour les packages/modules/ExtServices
est la suivante :
-
apex/
(fichiers deframeworks/base/apex/extservices
) -
java/
(fichiers depackages/modules/ExtServices/res
,packages/modules/ExtServices/src
,packages/modules/ExtServices/tests
et fichiers pour la nouvelle fonctionnalité) -
jni/
(fichiers pour la nouvelle fonctionnalité) -
native/
(fichiers pour la nouvelle fonctionnalité)
La limite du module ExtServices se trouve dans packages/modules/ExtServices
. Android 11 déplace également plusieurs classes d'implémentation TextClassifier
hors de frameworks/base/core/
.
Format des modules
Dans Android 11, le module ExtServices ( com.android.ext.services
) est au format APEX . Sous Android 10, ce module est au format APK.
Personnalisation
Dans Android 11, vous pouvez configurer un service de classificateur de texte personnalisé qui appelle le classificateur de texte par défaut (cependant, cela n'est pas recommandé). Dans Android 10, le module ExtServices ne fournit pas d'options de personnalisation.
Essai
La suite de tests de compatibilité Android (CTS) vérifie la fonctionnalité du module ExtServices en exécutant un ensemble complet de tests CTS sur chaque version du module. En outre, la Mainline Test Suite (MTS) contient également plusieurs tests ExtServices. La liste complète des tests ExtServices est la suivante :
Changements de configuration. Vérifié par le test CTS
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
.TextClassifier
. Vérifié par le test CTScts/TextClassifierPolicyTest.java
.Suggestion de remplissage automatique en ligne. Vérifié par les tests CTS dans
cts/inline/
.