Sobes.tech
Junior

Ce metode de stocare a datelor cunoști?

sobes.tech AI

Răspuns de la AI

  1. SharedPreferences: Pentru stocarea perechilor cheie-valoare simple (tipuri primitive). Acces rapid, dar nu potrivit pentru volume mari de date.

  2. Memoria internă (Internal Storage): Sistem de fișiere accesibil doar aplicației. Datele sunt șterse la dezinstalare. Potrivit pentru date private.

    // Scriere fișier
    applicationContext.openFileOutput("my_file.txt", Context.MODE_PRIVATE).use {
        it.write("Some data".toByteArray())
    }
    
    // Citire fișier
    applicationContext.openFileInput("my_file.txt").bufferedReader().useLines { lines ->
        lines.forEach { println(it) }
    }
    
  3. Memoria externă (External Storage): Sistem de fișiere accesibil altor aplicații (cu permisiuni) și utilizatorului. Datele rămân după dezinstalare. Necesită atenție la permisiuni pe Android 10+. Potrivit pentru date neconfidențiale.

  4. Baze de date SQLite: Bază de date relațională. Potrivit pentru date structurate care necesită interogări complexe. Necesită mai mult cod pentru implementare. Room Persistence Library este ORM-ul recomandat.

    -- Exemplu de interogare SQL
    SELECT * FROM users WHERE age > 30
    
  5. Content Providers: Oferă acces structurat la seturi de date partajate. Pot fi create pentru propriile date sau pentru accesul la datele altor aplicații (de exemplu, contacte).

  6. DataStore: Soluție modernă și asincronă pentru stocarea datelor, înlocuiește SharedPreferences și o parte din funcționalitatea SQLite. Există două tipuri: Preferences DataStore (pentru perechi cheie-valoare) și Proto DataStore (pentru obiecte tipizate cu Protobuf).

    // Exemplu Preferences DataStore
    val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "settings")
    
    suspend fun saveSetting(context: Context, key: String, value: Boolean) {
        context.dataStore.edit { settings ->
            settings[booleanPreferencesKey(key)] = value
        }
    }
    
  7. Jetpack DataStore (versiuni mai vechi) / DataSync / alte soluții cloud: Pentru sincronizarea datelor între dispozitivele utilizatorului și stocarea backup-urilor. Necesită integrare cu servicii cloud.

Alegerea metodei depinde de tipul de date, volumul acestora, necesitatea accesului comun, probleme de securitate și cerințele de performanță.