Sobes.tech
Junior

Маалыматтарды сактоо жолдорун билесиңби?

sobes.tech AI

AIден жооп

  1. SharedPreferences: Туура сактоо үчүн жөнөкөй кілт-баа жуптары (примитив түрлөрү). Жылдам жетүү, бирок чоң маалыматтар үчүн ылайыктуу эмес.

  2. Ички сактоо (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) }
    }
    
  3. Четке сактоо (External Storage): Файл тутуму, башка колдонмолорго ( уруксаттар менен) жана колдонуучуга жеткиликтүү. Маалыматтар деинсталляциядан кийин калат. Android 10+ уруксаттарына көңүл буруу керек. Сезимтал эмес маалыматтар үчүн ылайыктуу.

  4. SQLite маалыматтар базасы: Реляциондук база. Структуалдык маалыматтар үчүн ылайыктуу, татаал суроолор талап кылынат. Көбүрөөк код талап кылынат. Room Persistence Library сунушталат.

    -- Суроо мисалы
    SELECT * FROM users WHERE age > 30
    
  5. Content Providers: Тартиптелген маалыматтарга структураланган жеткиликтүүлүк. Өз маалыматтары үчүн түзүлүшү мүмкүн же башка колдонмолордун маалыматтарына жетүү үчүн колдонулушу мүмкүн (мисалы, байланыштар).

  6. 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
        }
    }
    
  7. Jetpack DataStore (эрте версиялар) / DataSync / башка булут чечимдери: Колдонуучу түзмөктөрүнүн маалыматтарын синхрондоо жана сактоо үчүн. Булут кызматтар менен интеграцияны талап кылат.

Тандоо маалыматтын түрүнө, көлөмүнө, жалпы жеткиликтүүлүккө, коопсуздук маселелерине жана иштөө талаптарына көз каранды.