Какви методи за съхранение на данни знаеш?
sobes.tech AI
Отговор от AI
-
SharedPreferences: За съхраняване на прости двойки ключ-стойност (примитивни типове). Бърз достъп, но не е подходящ за големи обеми данни.
-
Вътрешна памет (Internal Storage): Файлова система, достъпна само за приложението. Данните се изтриват при деинсталиране. Подходяща за лични данни.
// Запис на файл applicationContext.openFileOutput("my_file.txt", Context.MODE_PRIVATE).use { it.write("Some data".toByteArray()) } // Четене на файл applicationContext.openFileInput("my_file.txt").bufferedReader().useLines { lines -> lines.forEach { println(it) } } -
Външна памет (External Storage): Файлова система, достъпна за други приложения (с разрешения) и потребителя. Данните остават след деинсталиране. Изисква внимание към разрешенията в Android 10+. Подходяща за нечувствителни данни.
-
SQLite бази данни: Релационна база данни. Подходяща за структурирани данни, изискващи сложни заявки. Изисква повече код за реализиране. Room Persistence Library е препоръчваният ORM.
-- Пример SQL заявка SELECT * FROM users WHERE age > 30 -
Content Providers: Предоставят структурирана достъп до споделени набори от данни. Могат да бъдат създадени за свои данни или за достъп до данни на други приложения (например контакти).
-
DataStore: Модерно асинхронно решение за съхранение на данни, заместващо SharedPreferences и част от функционалността на SQLite. Има два вида: Preferences DataStore (за двойки ключ-стойност) и Proto DataStore (за типизирани обекти с Protobuf).
// Пример 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 (по-стари версии) / DataSync / други облачни решения: За синхронизиране на данни между устройствата на потребителя и съхраняване на бекъпи. Изисква интеграция с облачни услуги.
Изборът на метод зависи от типа данни, техния обем, необходимостта от споделен достъп, въпроси за сигурност и изисквания за производителност.