SharedPreferences – это интерфейс для работы с
key-value хранилищем на диске, в которое можно сохранять
примитивные типы и строки. Название
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 надстройки над этим хранилищем.