הגדרות מותאמות אישית

באפליקציית ההגדרות של Android מוצגת למשתמשים ב-Android 8.0 רשימה של הצעות. ההצעות האלה בדרך כלל מקדמות תכונות של הטלפון, ואפשר להתאים אותן אישית (למשל, "הגדרת לוח זמנים למצב 'נא לא להפריע'" או "הפעלת שיחות Wi-Fi"). התכונה הזו מספקת דירוג של ההצעות, על סמך אותות לפי הקשר או על סמך האינטראקציות הקודמות של המשתמש עם ההצעות.

מודל הדירוג הנוכחי שמוגדר כברירת מחדל בפרויקט קוד פתוח של Android‏ (AOSP) מבוסס על האינטראקציות הקודמות של המשתמשים עם ההצעה. זהו מודל לינארי פשוט שמתאמן באמצעות רגרסיה לוגיסטית כדי לתת משקל מתאים לאותות האינטראקציה. בהטמעה שמוגדרת כברירת מחדל, ההצעות שמוצגות, עליהן לוחצים או שסוגרות משמשות כאינדיקטורים, יחד עם הזמן שחלף מאז האירועים האלה, כדי לדרג את ההצעות ולהגדיל את הסיכוי לחזות את האינטראקציה של המשתמש עם ההצעות האלה. המודל הזה נוצר על סמך כמות מוגבלת של נתוני משתמשים ביומן. יצרני המכשירים (OEM) יכולים לפתח מודל דירוג משלהם על סמך הנתונים שנאספו, ויכול להיות שיכללו אותות לפי הקשר ויבצעו כיול של הדירוג.

הטמעה

מאתרים את הטמעת packages/apps/Settings/src/com/android/settings/dashboard/suggestions/SuggestionRanker.java שמוגדרת כברירת מחדל ב-AOSP.

התכונה הזו מוגנת על ידי דגל, isSmartSuggestionEnabled, שמוגדר ל-false כברירת מחדל. אם התכונה מופעלת (מוגדרת כ-true), היא פועלת ללא שינוי נוסף באמצעות הטמעת ברירת המחדל של AOSP. יצרני ציוד מקורי יכולים להשתמש בהטמעה שמוגדרת כברירת מחדל או להטמיע את התכונה בעצמם.

יצרני ציוד מקורי יכולים להתאים אישית את התכונה על ידי הטמעת התכונה platform/packages/apps/Settings/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java ושינוי של שיטת rankSuggestions של הקובץ. בשיטה הזו מתקבלות שתי רשימות שמכילות משבצות של הצעות וה-suggestionIds התואמים. השיטה הזו אמורה לשנות את הסדר של המשבצות ברשימה רק בהתאם למספר הנקודות הרצוי לדירוג. אפשר להשתמש ב-suggestionIds כדי לזהות באופן ייחודי הצעות ולחלץ את המידע הנדרש מהעבר לגבי ההצעה, בהתאם להטמעת הדירוג (למשל, מידת העדכניות של האינטראקציה עם ההצעה הספציפית הזו).

אימות

כדי לוודא שהגרסה שלהם של התכונה פועלת כמצופה, המטמיעים יכולים לכתוב בדיקות יחידה משלהם בדומה ל-packages/apps/Settings/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionRankerTest.java כדי לאמת את הדירוג.