Sobes.tech
Junior

Milyen adat tárolási módszereket ismersz?

sobes.tech MI

Válasz az MI-től

  1. SharedPreferences: Egyszerű kulcs-érték párok (primitív típusok) tárolására. Gyors hozzáférés, de nem alkalmas nagy adatmennyiségre.

  2. Belső tárhely (Internal Storage): Fájlrendszer, amely csak az alkalmazás számára elérhető. Az adatok az eltávolításkor törlődnek. Magán adatokhoz alkalmas.

    // Fájl írása
    applicationContext.openFileOutput("my_file.txt", Context.MODE_PRIVATE).use {
        it.write("Some data".toByteArray())
    }
    
    // Fájl olvasása
    applicationContext.openFileInput("my_file.txt").bufferedReader().useLines { lines ->
        lines.forEach { println(it) }
    }
    
  3. Külső tárhely (External Storage): Fájlrendszer, amely más alkalmazásokhoz (engedélyekkel) és a felhasználóhoz is hozzáférhető. Az adatok az eltávolítás után megmaradnak. Figyelmet igényel az engedélyekre Android 10+ esetén. Nem érzékeny adatokhoz alkalmas.

  4. SQLite adatbázisok: Relációs adatbázis. Strukturált adatokhoz, amelyek összetett lekérdezéseket igényelnek. Több kódot igényel a megvalósítás. A Room Persistence Library ajánlott ORM.

    -- SQL lekérdezés példa
    SELECT * FROM users WHERE age > 30
    
  5. Content Providers: Strukturált hozzáférést biztosítanak megosztott adatkészletekhez. Saját adatokhoz vagy más alkalmazások adataihoz (pl. kapcsolatok) is használhatók.

  6. DataStore: Modern, aszinkron megoldás az adatok tárolására, amely helyettesíti a SharedPreferences-t és a SQLite egy részét. Két típusa van: Preferences DataStore (kulcs-érték párokhoz) és Proto DataStore (Protobuf-al típusosított objektumokhoz).

    // Preferences DataStore példa
    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
        }
    }
    
  7. Jetpack DataStore (régebbi verziók) / DataSync / más felhő megoldások: Az adatok szinkronizálására a felhasználó eszközei között és biztonsági mentések tárolására. Cloud szolgáltatásokkal való integrációt igényel.

A módszer kiválasztása az adatok típusától, mennyiségétől, a közös hozzáférés szükségességétől, biztonsági kérdésektől és a teljesítményigényektől függ.