Junior
Android tətbiqlərində hansı məlumat saxlama növləri mövcuddur?
sobes.tech Süni İntellekt
AI-dan cavab
-
Daxili yaddaş:
- Yalnızca faylı yaradan tətbiq üçün əlçatandır.
- Fayllar tətbiqi siləndə silinir.
- Tətbiqin gizli məlumatlarını saxlamaq üçün uyğundur.
-
Xarici yaddaş:
- Bütün tətbiqlər üçün əlçatandır (icazələr tələb olunduqdan sonra).
- Fayllar tətbiqi siləndən sonra da qalır.
- Şəkil və ya musiqi kimi ümumi məlumatların saxlanması üçün uyğundur.
-
Paylaşılan Seçimlər:
- Kiçik məlumat həcmində açar-dəyər formatında saxlayır.
- Tətbiq parametrlərini və ya istifadəçi üstünlüklərini saxlamaq üçün istifadə olunur.
- Məlumatlar XML faylında saxlanılır.
-
SQLite Verilənlər Bazaları:
- Əlaqəli verilənlər bazası.
- Strukturlaşdırılmış məlumatların saxlanması üçün uyğundur.
- Məlumatların manipulyasiyası üçün SQL sorğularından istifadə etməyə imkan verir.
-
Content Providers:
- Tətbiqlər arasında məlumatlara giriş üçün standartlaşdırılmış interfeys təmin edir.
- Əlaqələr və ya təqvim kimi məlumatların mübadiləsi üçün istifadə olunur.
- Digər komponentlərdən tətbiqin öz məlumatlarına giriş üçün istifadə edilə bilər.
-
Jetpack DataStore:
- Paylaşılan Seçimlərin yerini tutur.
- Məlumatların saxlanması üçün asinxron API təmin edir.
- Məlumatların tipini və səhvlərin idarə olunmasını dəstəkləyir.
Budur Paylaşılan Seçimlərin istifadəsinə nümunə:
// SharedPreferences obyektini əldə edirik
val sharedPref = activity?.getPreferences(Context.MODE_PRIVATE) ?: return
with (sharedPref.edit()) {
// Dəyəri saxlayırıq
putBoolean("is_first_run", false)
apply() // Dəyişiklikləri asinxron tətbiq et
}
// Dəyəri oxuyuruq
val isFirstRun = sharedPref.getBoolean("is_first_run", true)
Budur SQLite istifadə nümunəsi:
// Verilənlər bazası və cədvəl yaradılması
class DBHelper(context: Context) : SQLiteOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION) {
companion object {
const val DATABASE_VERSION = 1
const val DATABASE_NAME = "MyDatabase.db"
const val TABLE_NAME = "my_table"
const val COLUMN_ID = "_id"
const val COLUMN_NAME = "name"
}
override fun onCreate(db: SQLiteDatabase) {
val createTable = "CREATE TABLE $TABLE_NAME (" +
"$COLUMN_ID INTEGER PRIMARY KEY," +
"$COLUMN_NAME TEXT)"
db.execSQL(createTable)
}
override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
// Verilənlər bazasının yenilənmə məntiqi
}
}
// Məlumatların daxil edilməsi
val dbHelper = DBHelper(this)
val db = dbHelper.writableDatabase
val values = ContentValues().apply {
put(DBHelper.COLUMN_NAME, "Nümunə ad")
}
val newRowId = db.insert(DBHelper.TABLE_NAME, null, values)