Android'de veri saklamak için SharedPreferences dışında hangi alternatifleri önerebilirsiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
-
Oda Kalıcılık Kütüphanesi: SQLite üzerinde soyutlama. DAO (Veri Erişim Nesneleri) aracılığıyla tiplenmiş veri erişimi sağlar, Coroutines ve Flow desteği içerir. Yapılandırılmış ve ilişkisel veriler için uygundur.
// Sorgu örneği @Dao interface UserDao { @Query("SELECT * FROM users WHERE id = :userId") suspend fun getUserById(userId: Int): User? } -
DataStore: Google'ın
SharedPreferences'ine daha modern bir alternatif.SharedPreferences'in çoklu iş parçacığı güvenliği ve UI iş parçacığını engelleme sorunlarını çözer. İki uygulaması vardır:Preferences DataStore(benzerSharedPreferences) veProto DataStore(Protocol Buffers ile tiplenmiş veriler için). Kotlin Coroutines ve Flow kullanır.// Preferences DataStore'dan okuma örneği val exampleCounterFlow: Flow<Int> = context.dataStore.data .map { preferences -> preferences[EXAMPLE_COUNTER] ?: 0 } -
Dahili/Dışarı Dosya Depolama: Büyük hacimli yapılandırılmamış verilerin saklanması için, örneğin medya dosyaları veya özel formatlar. Erişim ve izinlerin açık yönetimini gerektirir.
// Dahili depolamaya dosya yazma örneği String filename = "myapplicationdata"; String fileContents = "Hello world!"; try (FileOutputStream fos = context.openFileOutput(filename, Context.MODE_PRIVATE)) { fos.write(fileContents.getBytes()); } catch (IOException e) { e.printStackTrace(); } -
SQLiteDatabase: En düşük seviyeli erişim, gömülü SQLite veritabanına. SQL sorguları yazmayı ve veritabanını manuel yönetmeyi gerektirir (açma, kapama, sürüm yönetimi).
Roomçoğu durumda önerilen alternatiftir.-- SQL sorgu örneği SELECT column1, column2 FROM table_name WHERE condition; -
Dış bulut servisleri: Firebase Realtime Database, Firestore. Cihazlar arasında veri senkronizasyonu, yedekleme ve ortak erişim sağlar. İnternet bağlantısı ve çatışma yönetimi gerektirir.
Alternatif seçimi, veri tipi, hacmi, yapısı, senkronizasyon ihtiyacı ve performans gereksinimlerine bağlıdır. Küçük hacimli anahtar-değer çiftleri için DataStore tercih edilir. Yapılandırılmış veriler için — Room. Büyük yapılandırılmamış veriler için — dosya sistemi.