Configuraciones personalizadas

La aplicación de configuración de Android proporciona una lista de sugerencias a los usuarios de Android 8.0. Estas sugerencias generalmente promocionan funciones del teléfono y son personalizables (por ejemplo, "Establecer horario de No molestar" o "Activar llamadas Wi-Fi"). Esta función proporciona una clasificación de sugerencias, basada en cualquier señal contextual o en las interacciones pasadas del usuario con las sugerencias.

El modelo de clasificación predeterminado actual del Proyecto de código abierto de Android (AOSP) se basa en las interacciones previas del usuario con la sugerencia, que es un modelo lineal simple entrenado con regresión logística para ponderar adecuadamente las señales de interacción. La implementación predeterminada utiliza sugerencias mostradas, en las que se hace clic o descartadas como indicadores junto con la actualidad de estos eventos para clasificar las sugerencias y aumentar las posibilidades de predecir la interacción de un usuario con estas sugerencias. Este modelo se construyó con una cantidad limitada de datos de usuario registrados. Los fabricantes de dispositivos (OEM) pueden desarrollar su propio modelo de clasificación basado en los datos recopilados y potencialmente incluir señales contextuales y calibrar la clasificación.

Implementación

Busque la implementación predeterminada packages/apps/Settings/src/com/android/settings/dashboard/suggestions/SuggestionRanker.java en AOSP.

Esta característica está protegida por una bandera, isSmartSuggestionEnabled , que está configurada en falso de forma predeterminada. Si está habilitada (establecida en verdadero), la función funciona sin modificaciones adicionales utilizando la implementación AOSP predeterminada. Los OEM pueden utilizar la implementación predeterminada o introducir su propia implementación para habilitar esta función.

Los OEM pueden personalizar la función implementando la función platform/packages/apps/Settings/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java y anulando el método rankSuggestions del archivo. Este método obtiene dos listas que contienen mosaicos de sugerencias y los ID de sugerencia correspondientes. Este método debería reordenar los mosaicos en la lista solo de acuerdo con la puntuación de clasificación deseada. Los SugestionIds se pueden utilizar para identificar sugerencias de forma única y extraer la información anterior requerida sobre la sugerencia, dependiendo de la implementación de clasificación (por ejemplo, la interacción reciente con esta sugerencia en particular).

Validación

Los implementadores pueden asegurarse de que su versión de la función funcione según lo previsto escribiendo sus propias pruebas unitarias similares a packages/apps/Settings/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionRankerTest.java para verificar la clasificación.