Milliseid andmete salvestamise viise tead?
sobes.tech AI
Vastus AI-lt
-
SharedPreferences: Lihts võtme-väärtuse paaride salvestamine (primitiivsed tüübid). Kiire juurdepääs, kuid ei sobi suurema andmemahtude jaoks.
-
Sisemälu (Internal Storage): Failisüsteem, millele pääseb ligi ainult rakendus. Andmed kustutatakse desinstallimisel. Sobib privaatsete andmete jaoks.
// Faili kirjutamine applicationContext.openFileOutput("my_file.txt", Context.MODE_PRIVATE).use { it.write("Some data".toByteArray()) } // Faili lugemine applicationContext.openFileInput("my_file.txt").bufferedReader().useLines { lines -> lines.forEach { println(it) } } -
Väline mälu (External Storage): Failisüsteem, millele pääsevad ligi teised rakendused (luba nõutud) ja kasutaja. Andmed jäävad pärast desinstallimist. Vajab erilist tähelepanu luba nõuetele Android 10+.
-
SQLite andmebaasid: Relatsiooniline andmebaas. Sobib struktureeritud andmete jaoks, mis nõuavad keerukaid päringuid. Nõuab rohkem koodi. Soovitatav Room Persistence Library.
-- Näide SQL-päringust SELECT * FROM users WHERE age > 30 -
Content Providers: Pakuvad struktureeritud juurdepääsu ühistele andmekogumitele. Võivad olla loodud oma andmete jaoks või kasutada teiste rakenduste andmeid (näiteks kontaktid).
-
DataStore: Kaasaegne asünkroonne lahendus andmete salvestamiseks, asendades SharedPreferences ja osa SQLite funktsionaalsusest. On kahte tüüpi: Preferences DataStore (võtme-väärtuse paaridele) ja Proto DataStore (tüübipõhiste objektide jaoks Protobufiga).
// Preferences DataStore näide 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 (varasemad versioonid) / DataSync / muud pilvepõhised lahendused: Kasutatakse andmete sünkroniseerimiseks kasutaja seadmete vahel ja varundamiseks. Nõuab integreerimist pilveteenustega.
Valik sõltub andmetüübist, mahust, ühiskasutuse vajadusest, turvaküsimustest ja jõudlusnõuetest.