Kādus datu glabāšanas veidus pazīsti?
sobes.tech AI
Atbilde no AI
-
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.
-
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) } } -
Ā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+.
-
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 -
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).
-
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 } } -
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.