Kokius duomenų saugojimo būdus žinai?
sobes.tech AI
Atsakymas iš AI
-
SharedPreferences: Paprastų raktų-vertės porų saugojimas (primityvūs tipus). Greitas prieigos būdas, bet netinka dideliems duomenų kiekiams.
-
Vidinė atmintis (Internal Storage): Failų sistema, prieinama tik programai. Duomenys ištrinami pašalinus programą. Tinka privatiniams duomenims.
// Failo įrašymas applicationContext.openFileOutput("my_file.txt", Context.MODE_PRIVATE).use { it.write("Some data".toByteArray()) } // Failo skaitymas applicationContext.openFileInput("my_file.txt").bufferedReader().useLines { lines -> lines.forEach { println(it) } } -
Išorinė atmintis (External Storage): Failų sistema, prieinama kitiems programoms (su leidimais) ir vartotojui. Duomenys išlieka po pašalinimo. Reikalauja atskiro dėmesio leidimams Android 10+.
-
SQLite duomenų bazės: Santykinė duomenų bazė. Tinka struktūrizuotiems duomenims, reikalaujantiems sudėtingų užklausų. Reikalauja daugiau kodo. Rekomenduojama naudoti Room.
-- Užklausos pavyzdys SELECT * FROM users WHERE age > 30 -
Content Providers: Teikia struktūruotą prieigą prie bendrų duomenų rinkinių. Gali būti sukurti savo duomenims arba naudoti kitų programų duomenims (pvz., kontaktai).
-
DataStore: Šiuolaikinis asinchroninis sprendimas duomenų saugojimui, pakeičiantis SharedPreferences ir dalį SQLite funkcionalumo. Yra dviejų tipų: Preferences DataStore (raktas-reikšmė poroms) ir Proto DataStore (tipizuotiems objektams su Protobuf).
// Preferences DataStore pavyzdys 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 (anksčiau versijos) / DataSync / kiti debesų sprendimai: Naudojami duomenų sinchronizavimui tarp vartotojo įrenginių ir atsarginių kopijų saugojimui. Reikalauja integracijos su debesų paslaugomis.
Pasirinkimas priklauso nuo duomenų tipo, jų kiekio, bendro naudojimo poreikio, saugumo klausimų ir našumo reikalavimų.