Какие знаешь типы хранилищ в Android

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

Ответ

SharedPreferences – для хранения небольших данных (ключ-значение). Пример:

val prefs = getSharedPreferences("my_prefs", Context.MODE_PRIVATE)
prefs.edit().putString("key", "value").apply()

Internal Storage – приватные файлы приложения:

val file = File(context.filesDir, "data.txt")
file.writeText("Hello, World!")

External Storage – общие файлы (требует разрешения):

val file = File(Environment.getExternalStorageDirectory(), "data.txt")

SQLite – реляционная БД:

val db = SQLiteDatabase.openOrCreateDatabase("my_db", null)
db.execSQL("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)")

Room – абстракция над SQLite с аннотациями:

@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
    abstract fun userDao(): UserDao
}

DataStore – современная замена SharedPreferences (Kotlin Coroutines/Flow).

Firebase/Cloud Storage – облачные решения для синхронизации данных.

Выбор зависит от объёма данных, структуры и требований к безопасности.