SharedPreferences пошло от того, что это хранилище предназначено для небольшого количества разрозненных данных, например пользовательских настроек.Preference – это класс, который представляет UI-блок в PreferenceFragment и используется для UI-отображения пользовательских настроек. Если у объекта
Preference задан атрибут key, то значения автоматически сохраняются в SharedPreferences по ключу. Допустим, на экран настроек добавлен элемент SwitchPreferenceCompat:
<SwitchPreferenceCompat
app:key="notifications"
app:title="@string/notifications_pref_title"/>
Этот элемент будет показан пользователю как toggle-переключатель. Когда пользователь включает переключатель, в
SharedPreferences сохраняется пара ключ-значение "notifications" : "true".Таким образом
SharedPreferences – это системное хранилище, а класс Preference – это один из элементов UI надстройки над этим хранилищем.