Android 設定應用程式會在 Android 8.0 中為使用者提供建議清單。這些建議通常會宣傳手機的功能,而且可以自訂 (例如「設定零打擾時間表」或「開啟 Wi-Fi 通話」)。這項功能會根據任何情境信號或使用者過去與建議內容的互動情形,為建議內容提供排名。
目前的 Android 開放原始碼計畫 (AOSP) 預設排名模型,是根據使用者先前與建議互動的情況而建立,這是透過邏輯迴歸訓練的簡單線性模型,可妥善權衡互動信號。預設實作方式會將顯示、點選或略過的建議視為指標,並搭配這些事件的近期性,為建議排序,提高預測使用者與這些建議互動的可能性。這個模型是使用有限量的記錄使用者資料建立。裝置製造商 (OEM) 可以根據任何收集到的資料,自行開發排名模型,並納入內容比對信號和校正排名。
實作
在 AOSP 中找出預設的 packages/apps/Settings/src/com/android/settings/dashboard/suggestions/SuggestionRanker.java
實作項目。
這項功能受到標記 isSmartSuggestionEnabled
的保護,預設為設為 false。如果已啟用 (設為 true),這項功能會使用預設的 AOSP 實作項目運作,無須額外修改。原始設備製造商 (OEM) 可以使用預設實作方式,也可以自行實作這項功能。
原始設備製造商 (OEM) 可以實作 platform/packages/apps/Settings/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java
功能,並覆寫檔案的 rankSuggestions
方法,藉此自訂這項功能。這個方法會取得兩個清單,其中包含建議方塊和對應的 suggestionId。此方法應只根據所需排名分數重新排序清單中的圖塊。視排名導入方式而定 (例如與此特定建議互動的最近時間),建議 ID 可用於明確識別建議,並擷取建議的必要過往資訊。
驗證
實作者可以編寫類似 packages/apps/Settings/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionRankerTest.java
的單元測試來驗證排名,確保功能的版本能正常運作。