Sobes.tech
Junior

Qaysi ma'lumotlarni saqlash usullarini bilasiz?

sobes.tech AI

AIdan javob

  1. SharedPreferences: Oddiy kalit-qiymat juftlarini (primitiiv turlar) saqlash uchun. Tez kirish, ammo katta ma'lumotlar hajmi uchun mos emas.

  2. Ichki xotira (Internal Storage): Foydalanuvchi uchun faqat kirish mumkin bo'lgan fayl tizimi. Ma'lumotlar o'chiriladi o'chirilganda. Maxfiy ma'lumotlar uchun mos.

    // Fayl yozish
    applicationContext.openFileOutput("my_file.txt", Context.MODE_PRIVATE).use {
        it.write("Some data".toByteArray())
    }
    
    // Fayl o'qish
    applicationContext.openFileInput("my_file.txt").bufferedReader().useLines { lines ->
        lines.forEach { println(it) }
    }
    
  3. Tashqi xotira (External Storage): Boshqa ilovalar (ruxsatlar bilan) va foydalanuvchi uchun ochiq fayl tizimi. Ma'lumotlar o'chirilgandan keyin saqlanadi. Android 10+ ruxsatlariga e'tibor berish kerak. Nohimoyalangan ma'lumotlar uchun mos.

  4. SQLite Ma'lumotlar bazalari: Relatsion ma'lumotlar bazasi. Tuzilgan ma'lumotlar uchun, murakkab so'rovlar talab qiladigan. Ko'proq kod yozishni talab qiladi. Room Persistence Library tavsiya etilgan ORM.

    -- SQL so'rov misoli
    SELECT * FROM users WHERE age > 30
    
  5. Content Providers: Umumiy ma'lumotlar to'plamlariga strukturali kirish imkonini beradi. O'z ma'lumotlari uchun yoki boshqa ilovalarning ma'lumotlariga kirish uchun yaratilishi mumkin (masalan, kontaktlar).

  6. DataStore: Zamonaviy va asinxron ma'lumot saqlash yechimi, SharedPreferences va SQLite funksiyalarining bir qismini almashtiradi. Ikki turi mavjud: Preferences DataStore (kalit-qiymat juftlari uchun) va Proto DataStore (Protobuf bilan tiplangan obyektlar uchun).

    // Preferences DataStore misoli
    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 (eski versiyalar) / DataSync / boshqa bulut yechimlari: Foydalanuvchi qurilmalari o'rtasida ma'lumotlarni sinxronlashtirish va zaxira nusxalarini saqlash uchun. Bulut xizmatlari bilan integratsiya talab etiladi.

Tanlov ma'lumotlar turi, hajmi, umumiy kirish ehtiyoji, xavfsizlik masalalari va ishlash talablarga bog'liq.