Configurações personalizadas

O aplicativo Configurações do Android fornece uma lista de sugestões para os usuários do Android 8.0. Essas sugestões geralmente promovem recursos do telefone e são personalizáveis ​​(por exemplo, "Definir programação de Não perturbe" ou "Ativar chamadas Wi-Fi"). Esse recurso fornece classificação para sugestões, com base em qualquer sinal contextual ou nas interações anteriores do usuário com sugestões.

O modelo de classificação padrão do Android Open Source Project (AOSP) é baseado nas interações anteriores do usuário com a sugestão, que é um modelo linear simples treinado com regressão logística para ponderar adequadamente os sinais de interação. A implementação padrão usa sugestões mostradas, clicadas ou descartadas como indicadores junto com a recência desses eventos para classificar as sugestões e aumentar a chance de prever a interação de um usuário com essas sugestões. Este modelo foi construído com uma quantidade limitada de dados de usuários registrados. Os fabricantes de dispositivos (OEMs) podem desenvolver seu próprio modelo de classificação com base em quaisquer dados coletados e potencialmente incluir sinais contextuais e calibrar a classificação.

Implementação

Encontre a implementação padrão packages/apps/Settings/src/com/android/settings/dashboard/suggestions/SuggestionRanker.java no AOSP.

Esse recurso é protegido por um sinalizador, isSmartSuggestionEnabled , que é definido como false por padrão. Se ativado (definido como verdadeiro), o recurso opera sem modificação adicional usando a implementação AOSP padrão. Os OEMs podem usar a implementação padrão ou introduzir sua própria implementação para habilitar esse recurso.

Os OEMs podem personalizar o recurso implementando o recurso platform/packages/apps/Settings/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java e substituindo o método rankSuggestions do arquivo. Este método obtém duas listas contendo Tiles de sugestão e os sugestIds correspondentes. Este método deve reordenar as peças na lista apenas de acordo com a pontuação de classificação desejada. Os sugestionIds podem ser usados ​​para identificar exclusivamente sugestões e extrair as informações anteriores necessárias sobre a sugestão, dependendo da implementação da classificação (por exemplo, recência da interação com essa sugestão específica).

Validação

Os implementadores podem garantir que sua versão do recurso funcione conforme pretendido escrevendo seus próprios testes de unidade semelhantes a packages/apps/Settings/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionRankerTest.java para verificar a classificação.