Sobes.tech
Junior

Ce tipuri de stocare a datelor există în aplicațiile Android?

sobes.tech AI

Răspuns de la AI

  1. Stocare internă:

    • Disponibilă doar pentru aplicația care a creat fișierul.
    • Fișierele sunt șterse la eliminarea aplicației.
    • Potrivit pentru stocarea datelor confidențiale ale aplicației.
  2. Stocare externă:

    • Disponibilă pentru toate aplicațiile (după solicitarea permisiunilor).
    • Fișierele rămân chiar și după eliminarea aplicației.
    • Potrivit pentru stocarea datelor comune, cum ar fi fotografii sau muzică.
  3. Preferințe partajate:

    • Stochează volume mici de date în format cheie-valoare.
    • Folosit pentru salvarea setărilor aplicației sau preferințelor utilizatorului.
    • Datele sunt stocate într-un fișier XML.
  4. Baze de date SQLite:

    • Bază de date relațională.
    • Potrivit pentru stocarea datelor structurate.
    • Permite utilizarea interogărilor SQL pentru manipularea datelor.
  5. Proveditori de conținut:

    • Oferă o interfață standardizată pentru accesul la date între aplicații.
    • Folosit pentru schimbul de date, cum ar fi contacte sau calendar.
    • Pot fi folosiți pentru accesul la datele proprii ale aplicației din alte componente.
  6. Jetpack DataStore:

    • Înlocuiește preferințele partajate.
    • Oferă o API asincronă pentru stocarea datelor.
    • Suportă tipizarea datelor și gestionarea erorilor.

Iată un exemplu de utilizare a preferințelor partajate:

// Obțineți obiectul SharedPreferences
val sharedPref = activity?.getPreferences(Context.MODE_PRIVATE) ?: return
with (sharedPref.edit()) {
    // Salvăm valoarea
    putBoolean("is_first_run", false)
    apply() // Aplicăm modificările asincron
}

// Citim valoarea
val isFirstRun = sharedPref.getBoolean("is_first_run", true)

Iată un exemplu de utilizare a SQLite:

// Crearea bazei de date și a tabelului
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) {
        // Logica de actualizare a bazei de date
    }
}

// Inserarea datelor
val dbHelper = DBHelper(this)
val db = dbHelper.writableDatabase

val values = ContentValues().apply {
    put(DBHelper.COLUMN_NAME, "Exemplu nume")
}

val newRowId = db.insert(DBHelper.TABLE_NAME, null, values)