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 por Wi-Fi"). Este 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 atual 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 atualidade 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 registrados do usuário. 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 habilitado (definido como verdadeiro), o recurso opera sem modificações adicionais usando a implementação padrão do AOSP. 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 blocos de sugestões e os SuggestIds correspondentes. Este método deve reordenar as peças da lista apenas de acordo com a pontuação de classificação desejada. Os SuggestIds podem ser usados ​​para identificar sugestões de maneira exclusiva e extrair as informações anteriores necessárias sobre a sugestão, dependendo da implementação da classificação (por exemplo, tempo recente de interação com esta sugestão específica).

Validação

Os implementadores podem garantir que sua versão do recurso funcione conforme o esperado, 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.