Jaké způsoby ukládání dat znáš?
sobes.tech AI
Odpověď od AI
-
SharedPreferences: Pro ukládání jednoduchých párů klíč-hodnota (primitivní typy). Rychlý přístup, ale nevhodné pro velké objemy dat.
-
Vnitřní paměť (Internal Storage): Souborový systém dostupný pouze aplikaci. Data jsou odstraněna při odinstalaci. Vhodné pro soukromá data.
// Zápis souboru applicationContext.openFileOutput("my_file.txt", Context.MODE_PRIVATE).use { it.write("Some data".toByteArray()) } // Čtení souboru applicationContext.openFileInput("my_file.txt").bufferedReader().useLines { lines -> lines.forEach { println(it) } } -
Vnější paměť (External Storage): Souborový systém přístupný jiným aplikacím (s oprávněními) a uživateli. Data zůstávají po odinstalaci. Vyžaduje pozornost k oprávněním na Android 10+. Vhodné pro nevýbušná data.
-
SQLite databáze: Relační databáze. Vhodné pro strukturovaná data, která vyžadují složité dotazy. Vyžaduje více kódu pro implementaci. Doporučená ORM je Room Persistence Library.
-- Příklad SQL dotazu SELECT * FROM users WHERE age > 30 -
Content Providers: Poskytují strukturovaný přístup ke sdíleným sadám dat. Mohou být vytvořeny pro vlastní data nebo pro přístup k datům jiných aplikací (například kontakty).
-
DataStore: Moderní asynchronní řešení pro ukládání dat, nahrazuje SharedPreferences a část funkcionality SQLite. Existují dva typy: Preferences DataStore (pro páry klíč-hodnota) a Proto DataStore (pro typované objekty s Protobuf).
// Příklad 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 } } -
Jetpack DataStore (starší verze) / DataSync / jiné cloudové řešení: Pro synchronizaci dat mezi zařízeními uživatele a ukládání záloh. Vyžaduje integraci s cloudovými službami.
Volba metody závisí na typu dat, jejich objemu, potřebě sdíleného přístupu, otázkách bezpečnosti a požadavcích na výkon.