Ի՞նչ տվյալների պահպանումի եղանակներ գիտես։
sobes.tech AI
Պատասխան AI-ից
-
SharedPreferences: Հեշտ զույգեր պահելու համար բանալին-արժեք ( primitives տեսակներ): Արագ մուտք, բայց չի համապատասխանում մեծ տվյալների ծավալների համար:
-
Ներքին հիշողություն (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) } } -
Ելքային հիշողություն (External Storage): Ֆայլային համակարգ, հասանելի այլ հավելվածների (համաձայն թույլտվությունների) և օգտատիրոջ համար: Տվյալները մնում են անջատելուց հետո: Պահանջում է հատուկ ուշադրություն թույլտվությունների վրա Android 10+:
-
SQLite տվյալների բազաներ: Ռելացիոնալ տվյալների բազա: Համապատասխան է կառուցվածքային տվյալների համար, որոնք պահանջում են բարդ հարցումներ: Պահանջում է ավելի շատ կոդ:
-- SQL հարցման օրինակ SELECT * FROM users WHERE age > 30 -
Content Providers: Կազմված տվյալների հավաքածուին կառուցվածքային մուտք: Կարող են ստեղծվել սեփական տվյալների համար կամ օգտագործվել այլ հավելվածների տվյալների մուտքի համար:
-
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 } } -
Jetpack DataStore (նախնական տարբերակներ) / DataSync / այլ ամպային լուծումներ: Օգտագործվում են տվյալների սինխրոնիզացման և պահեստավորման համար:
Ընտրությունը կախված է տվյալների տեսակից, ծավալից, համատեղ օգտագործման անհրաժեշտությունից, անվտանգության հարցերից և կատարողականության պահանջներից: