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.