Sobes.tech
Junior

Ի՞նչ տվյալների պահպանումի եղանակներ գիտես։

sobes.tech AI

Պատասխան AI-ից

  1. SharedPreferences: Հեշտ զույգեր պահելու համար բանալին-արժեք ( primitives տեսակներ): Արագ մուտք, բայց չի համապատասխանում մեծ տվյալների ծավալների համար:

  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 տվյալների բազաներ: Ռելացիոնալ տվյալների բազա: Համապատասխան է կառուցվածքային տվյալների համար, որոնք պահանջում են բարդ հարցումներ: Պահանջում է ավելի շատ կոդ:

    -- SQL հարցման օրինակ
    SELECT * FROM users WHERE age > 30
    
  5. Content Providers: Կազմված տվյալների հավաքածուին կառուցվածքային մուտք: Կարող են ստեղծվել սեփական տվյալների համար կամ օգտագործվել այլ հավելվածների տվյալների մուտքի համար:

  6. DataStore: Ժամանակակից ասինխրոն լուծում տվյալների պահեստավորման համար, փոխարինելով SharedPreferences և մասամբ SQLite:

    // 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 / այլ ամպային լուծումներ: Օգտագործվում են տվյալների սինխրոնիզացման և պահեստավորման համար:

Ընտրությունը կախված է տվյալների տեսակից, ծավալից, համատեղ օգտագործման անհրաժեշտությունից, անվտանգության հարցերից և կատարողականության պահանջներից: