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

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

Ответ

В Android есть несколько способов работы с БД:

  1. SQLite - встроенная БД. Работа через:
SQLiteOpenHelper для создания/обновления БД
SQLiteDatabase для запросов (rawQuery, execSQL)
  1. Room - ORM над SQLite:
@Entity data class User(...)
@Dao interface UserDao {
    @Query("SELECT * FROM user")
    fun getAll(): List<User>
}
@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase()
  1. Realm - альтернативная NoSQL БД
  2. ContentProviders - для обмена данными между приложениями
  3. Firebase Realtime Database - облачное решение от Google

Room - рекомендованный способ, т.к.:

  • Компиляция SQL на этапе сборки
  • Упрощает работу с LiveData/Flow
  • Минимизирует boilerplate-код
  • Поддержка миграций