برنامه «تنظیمات Android» فهرستی از پیشنهادها را در Android 8.0 به کاربران ارائه میدهد. این پیشنهادها معمولاً ویژگیهای تلفن را تبلیغ میکنند و قابلسفارشیسازی هستند (برای نمونه، «برنامه «مزاحم نشوید» را تنظیم کنید» یا «تماس با Wi-Fi را روشن کنید»). این ویژگی براساس هرگونه سیگنال بافتاری یا تعاملات گذشته کاربر با پیشنهادها، برای پیشنهادها رتبهبندی ارائه میدهد.
مدل رتبهبندی پیشفرض فعلی «پروژه متنباز Android» (AOSP) براساس تعاملات قبلی کاربر با پیشنهاد است که مدل خطی سادهای است که با رگرسیون لجستیک آموزش داده شده است تا سیگنالهای تعامل را بهدرستی وزندهی کند. پیادهسازی پیشفرض از پیشنهادهای نشاندادهشده، کلیکشده، یا ردشده بهعنوان نشانگرهایی بههمراه جدید بودن این رویدادها برای رتبهبندی پیشنهادها و افزایش احتمال پیشبینی تعامل کاربر با این پیشنهادها استفاده میکند. این مدل با مقدار محدودی از دادههای کاربر ثبتشده ساخته شده است. سازندگان دستگاه (OEM) میتوانند مدل رتبهبندی خودشان را براساس هرگونه داده جمعآوریشده توسعه دهند و احتمالاً نشانهای زمینهای را اضافه کنند و رتبهبندی را کالیبره کنند.
پیادهسازی
پیادهسازی پیشفرض packages/apps/Settings/src/com/android/settings/dashboard/suggestions/SuggestionRanker.java را در AOSP پیدا کنید.
این ویژگی با پرچم isSmartSuggestionEnabled محافظت میشود که بهطور پیشفرض روی false تنظیم شده است. اگر فعال باشد (روی درست تنظیم شده باشد)، این ویژگی
بدون اصلاحات اضافی بااستفاده از پیادهسازی پیشفرض 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 برای درستیسنجی رتبهبندی، مطمئن شوند که نسخه آنها از این ویژگی همانطور که درنظر گرفته شده است کار میکند.