Sobes.tech
Junior

Kādus datu glabāšanas veidus pazīsti?

sobes.tech AI

Atbilde no AI

  1. SharedPreferences: Vienkāršu atslēgas-vērtības pāru glabāšana (primitiīvi tipi). Ātra piekļuve, bet nav piemērots lieliem datu apjomiem.

  2. Iekšējā atmiņa (Internal Storage): Failu sistēma, pieejama tikai lietotnei. Dati tiek dzēsti, dzēšot lietotni. Piemērots privātiem datiem.

    // Faila rakstīšana
    applicationContext.openFileOutput("my_file.txt", Context.MODE_PRIVATE).use {
        it.write("Some data".toByteArray())
    }
    
    // Faila lasīšana
    applicationContext.openFileInput("my_file.txt").bufferedReader().useLines { lines ->
        lines.forEach { println(it) }
    }
    
  3. Ārējā atmiņa (External Storage): Failu sistēma, pieejama citiem lietotājiem (ar atļaujām) un lietotājam. Dati paliek pēc lietotnes noņemšanas. Nepieciešama īpaša uzmanība atļaujām Android 10+.

  4. SQLite datu bāzes: Relāciju datu bāze. Piemērota strukturētiem datiem, kas prasa sarežģītas vaicājumus. Prasa vairāk koda. Ieteicams izmantot Room.

    -- Vaicājuma piemērs
    SELECT * FROM users WHERE age > 30
    
  5. Content Providers: Nodrošina strukturētu piekļuvi koplietojamiem datu kopumiem. Var tikt izveidoti saviem datiem vai izmantoti citu lietotņu datiem (piemēram, kontaktu).

  6. DataStore: Mūsdienīgs asinhrons risinājums datu glabāšanai, aizstājot SharedPreferences un daļu SQLite funkcionalitātes. Ir divu veidu: Preferences DataStore (atslēga-vērtība pāriem) un Proto DataStore (tipizēti objekti ar Protobuf).

    // Preferences DataStore piemērs
    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 (vecākas versijas) / DataSync / citi mākoņrisinājumi: Datu sinhronizācijai starp lietotāja ierīcēm un rezerves kopiju glabāšanai. Prasa integrāciju ar mākoņpakalpojumiem.

Izvēle ir atkarīga no datu veida, apjoma, koplietošanas vajadzības, drošības jautājumiem un veiktspējas prasībām.