Paramètres personnalisés

L'application Paramètres Android fournit une liste de suggestions aux utilisateurs dans Android 8.0. Ces suggestions promeuvent généralement les fonctionnalités du téléphone et sont personnalisables (par exemple, "Définir un horaire de Ne pas déranger" ou "Activer l'appel Wi-Fi"). Cette fonctionnalité fournit un classement des suggestions, en fonction de tout signal contextuel ou des interactions passées de l'utilisateur avec les suggestions.

Le modèle de classement par défaut actuel du projet Android Open Source (AOSP) est basé sur les interactions précédentes de l'utilisateur avec la suggestion. Il s'agit d'un modèle linéaire simple entraîné avec une régression logistique pour pondérer correctement les signaux d'interaction. L'implémentation par défaut utilise les suggestions affichées, cliquées ou ignorées comme indicateurs, ainsi que la récence de ces événements pour classer les suggestions et augmenter les chances de prédire l'interaction d'un utilisateur avec ces suggestions. Ce modèle a été créé à partir d'une quantité limitée de données utilisateur enregistrées. Les fabricants d'appareils (OEM) peuvent développer leur propre modèle de classement en fonction des données collectées, et éventuellement inclure des signaux contextuels et calibrer le classement.

Implémentation

Recherchez l'implémentation par défaut de packages/apps/Settings/src/com/android/settings/dashboard/suggestions/SuggestionRanker.java dans AOSP.

Cette fonctionnalité est protégée par un indicateur, isSmartSuggestionEnabled, qui est défini sur "false" par défaut. Si elle est activée (définie sur "true"), la fonctionnalité fonctionne sans modification supplémentaire à l'aide de l'implémentation AOSP par défaut. Les OEM peuvent utiliser l'implémentation par défaut ou introduire leur propre implémentation pour activer cette fonctionnalité.

Les OEM peuvent personnaliser la fonctionnalité en implémentant la fonctionnalité platform/packages/apps/Settings/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java et en remplaçant la méthode rankSuggestions du fichier. Cette méthode obtient deux listes contenant des cartes de suggestion et les suggestionIds correspondants. Cette méthode ne doit réorganiser les cartes de la liste que selon le score de classement souhaité. Les suggestionIds peuvent être utilisés pour identifier de manière unique les suggestions et extraire les informations passées requises à leur sujet, en fonction de l'implémentation du classement (par exemple, la récence de l'interaction avec cette suggestion particulière).

Validation

Les implémentateurs peuvent s'assurer que leur version de la fonctionnalité fonctionne comme prévu en écrivant leurs propres tests unitaires semblables à packages/apps/Settings/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionRankerTest.java pour vérifier le classement.