Какие знаешь способы кеширования данных

«Какие знаешь способы кеширования данных» — вопрос из категории Архитектура, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Android есть несколько способов кеширования:

  1. SharedPreferences - для простых данных (настройки, флаги)
val prefs = getSharedPreferences("app", MODE_PRIVATE)
prefs.edit().putString("token", "abc123").apply()
  1. Внутреннее/внешнее хранилище - для файлов
val file = File(context.cacheDir, "data.json")
file.writeText(jsonData)
  1. Room Database - для структурированных данных
@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
    abstract fun userDao(): UserDao
}
  1. Кеш в памяти (LruCache) - для быстрого доступа
val memoryCache = LruCache<String, Bitmap>(maxMemory / 8)
  1. Retrofit Cache - HTTP кеширование
val cache = Cache(File(context.cacheDir, "http"), 10 * 1024 * 1024)

Выбор зависит от типа данных, частоты обновления и требований к производительности.