Android Ayarları uygulaması, Android 8.0'daki kullanıcılara öneriler listesi sunar. Bu öneriler genellikle telefonun özelliklerini öne çıkarır ve özelleştirilebilir (ör. "Rahatsız Etmeyin programını ayarla" veya "Kablosuz aramayı etkinleştir"). Bu özellik, bağlamsal sinyallere veya kullanıcının önerilerle geçmişteki etkileşimlerine göre öneriler için sıralama sağlar.
Mevcut varsayılan Android Open Source Project (AOSP) sıralama modeli, kullanıcının öneriyle önceki etkileşimlerine dayanır. Bu model, etkileşim sinyallerine uygun şekilde ağırlık vermek için mantıksal regresyonla eğitilmiş basit bir doğrusal modeldir. Varsayılan uygulama, önerileri sıralamak ve kullanıcının bu önerilerle etkileşimini tahmin etme olasılığını artırmak için gösterilen, tıklanan veya reddedilen önerileri gösterge olarak kullanır. Bu etkinliklerin yakınlığı da dikkate alınır. Bu model, sınırlı miktarda günlük kaydı içeren kullanıcı verileriyle oluşturulmuştur. Cihaz üreticileri (OEM'ler), toplanan verilere dayalı kendi sıralama modellerini geliştirebilir, bağlamsal sinyaller ekleyebilir ve sıralamayı kalibre edebilir.
Uygulama
AOSP'de varsayılan packages/apps/Settings/src/com/android/settings/dashboard/suggestions/SuggestionRanker.java
uygulamasını bulun.
Bu özellik, varsayılan olarak yanlış olarak ayarlanmış bir işaret (isSmartSuggestionEnabled
) tarafından korunur. Etkinleştirilirse (doğru olarak ayarlanırsa) özellik, varsayılan AOSP uygulamasını kullanarak ek bir değişiklik yapılmadan çalışır. OEM'ler bu özelliği etkinleştirmek için varsayılan uygulamayı kullanabilir veya kendi uygulamalarını tanıtabilir.
OEM'ler, platform/packages/apps/Settings/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java
özelliğini uygulayarak ve dosyanın rankSuggestions
yöntemini geçersiz kılarak özelliği özelleştirebilir.
Bu yöntem, öneri karolarını ve ilgili suggestionId'leri içeren iki liste alır. Bu yöntem, listedeki karoları yalnızca istenen sıralama puanına göre yeniden sıralamalıdır. suggestionIds, önerileri benzersiz şekilde tanımlamak ve öneriyle ilgili geçmiş bilgileri (ör. söz konusu öneriyle etkileşimin yakınlığı) sıralama uygulamasına bağlı olarak ayıklamak için kullanılabilir.
Doğrulama
Uygulayıcılar, sıralamayı doğrulamak için packages/apps/Settings/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionRankerTest.java
'e benzer kendi birim testlerini yazarak özelliğin kendi sürümlerinin amaçlandığı gibi çalıştığından emin olabilir.