Что такое SharedPreferences

Ответ

SharedPreferences — это механизм в Android для хранения простых данных (ключ-значение) в формате XML. Подходит для небольших объемов данных: настройки, флаги, токены и т.д.

Особенности:

  • Работает только в рамках приложения
  • Данные сохраняются после перезапуска приложения
  • Не подходит для сложных структур или больших данных

Пример использования:

// Сохранение
val sharedPref = getSharedPreferences("my_prefs", Context.MODE_PRIVATE)
sharedPref.edit().putString("API_KEY", "12345").apply()

// Чтение
val apiKey = sharedPref.getString("API_KEY", "default_value")

Для защиты чувствительных данных лучше использовать EncryptedSharedPreferences.

Ответ 18+ 🔞

Ну, слушай, смотри, есть такая штука в андроиде — SharedPreferences. Представь себе такую маленькую, скромную тумбочку в приложении. Туда можно складывать разные мелочи по принципу «ключик-значение». Типа, «настройка звука — вкл», «токен юзера — 12345», «флаг первого запуска — тру». Всё это аккуратненько упаковывается в XML и лежит себе, пока приложение живо. После перезапуска — всё на месте, не пропадает.

Но, блядь, это же не волшебный мешок! Нельзя туда засунуть, например, всю базу данных пользователя или фото его кота в высоком разрешении. Для этого ёбнутого объёма данных — совсем не годится. Это для мелочёвки, сука!

Вот, смотри, как этим пользоваться, чтоб ты не обосрался:

// Сохраняем какую-то хуйню
val sharedPref = getSharedPreferences("my_prefs", Context.MODE_PRIVATE)
sharedPref.edit().putString("API_KEY", "12345").apply()

// А потом достаём обратно
val apiKey = sharedPref.getString("API_KEY", "default_value")

Видишь? Всё просто, как три копейки. Но! Есть один важный нюанс, ёпта. Если ты туда собираешься пихать что-то действительно важное — пароль, пин-код, сессионный ключ — то обычные SharedPreferences это пиздец как небезопасно. Любой злоумышленник с рут-доступом к устройству прочитает твои XML-файлы и будет ржать, как конь. Поэтому для такой чувствительной фигни есть EncryptedSharedPreferences. Он эту тумбочку, блядь, наглухо закрывает на замок с шифрованием. Вот об этом всегда помни, а то потом будешь руками разводить: «ой, а у меня данные уплыли».