Spersonalizowane ustawienia

Aplikacja Ustawienia systemu Android udostępnia listę sugestii użytkownikom systemu Android 8.0. Sugestie te zazwyczaj promują funkcje telefonu i można je dostosować (np. „Ustaw harmonogram trybu Nie przeszkadzać” lub „Włącz połączenia Wi-Fi”). Ta funkcja zapewnia ranking sugestii na podstawie wszelkich sygnałów kontekstowych lub wcześniejszych interakcji użytkownika z sugestiami.

Bieżący domyślny model rankingu Android Open Source Project (AOSP) opiera się na wcześniejszych interakcjach użytkownika z sugestią, która jest prostym modelem liniowym przeszkolonym za pomocą regresji logistycznej w celu prawidłowego ważenia sygnałów interakcji. Domyślna implementacja wykorzystuje sugestie wyświetlane, kliknięte lub odrzucone jako wskaźniki wraz z aktualnością tych zdarzeń w celu uszeregowania sugestii i zwiększenia szansy na przewidzenie interakcji użytkownika z tymi sugestiami. Model ten został zbudowany z ograniczoną ilością zarejestrowanych danych użytkownika. Producenci urządzeń (OEM) mogą opracować własny model rankingowy na podstawie zebranych danych i potencjalnie uwzględnić sygnały kontekstowe oraz skalibrować ranking.

Realizacja

Znajdź domyślną implementację packages/apps/Settings/src/com/android/settings/dashboard/suggestions/SuggestionRanker.java w AOSP.

Ta funkcja jest chroniona flagą isSmartSuggestionEnabled , która domyślnie ma wartość false. Jeśli jest włączona (ustawiona na true), funkcja działa bez dodatkowych modyfikacji, korzystając z domyślnej implementacji AOSP. Producenci OEM mogą albo użyć domyślnej implementacji, albo wprowadzić własną implementację, aby włączyć tę funkcję.

Producenci OEM mogą dostosować tę funkcję, wdrażając funkcję platform/packages/apps/Settings/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java i zastępując metodę rankSuggestions pliku. Ta metoda pobiera dwie listy zawierające kafelki sugestii i odpowiadające im identyfikatory sugestii. Ta metoda powinna zmienić kolejność płytek na liście tylko zgodnie z pożądanym wynikiem rankingowym. Identyfikator sugestii może zostać użyty do jednoznacznej identyfikacji sugestii i wyodrębnienia wymaganych informacji o sugestii z przeszłości, w zależności od implementacji rankingu (np. niedawna interakcja z tą konkretną sugestią).

Walidacja

Osoby wdrażające mogą upewnić się, że ich wersja funkcji działa zgodnie z zamierzeniami, pisząc własne testy jednostkowe podobne do packages/apps/Settings/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionRankerTest.java w celu sprawdzenia rankingu.