Sobes.tech
Junior

Quels types de stockage de données existent dans les applications Android?

sobes.tech IA

Réponse de l'IA

  1. Stockage interne :

    • Accessible uniquement pour l'application ayant créé le fichier.
    • Les fichiers sont supprimés lors de la suppression de l'application.
    • Convient pour stocker des données confidentielles de l'application.
  2. Stockage externe :

    • Disponible pour toutes les applications (après avoir demandé les permissions).
    • Les fichiers restent même après la suppression de l'application.
    • Convient pour stocker des données partagées, comme des photos ou de la musique.
  3. Préférences partagées :

    • Stocke de petites quantités de données au format clé-valeur.
    • Utilisé pour sauvegarder les paramètres de l'application ou les préférences utilisateur.
    • Les données sont stockées dans un fichier XML.
  4. Bases de données SQLite :

    • Base de données relationnelle.
    • Convient pour stocker des données structurées.
    • Permet d'utiliser des requêtes SQL pour manipuler les données.
  5. Fournisseurs de contenu :

    • Fournissent une interface standardisée pour accéder aux données entre applications.
    • Utilisés pour échanger des données, comme des contacts ou un calendrier.
    • Peuvent être utilisés pour accéder aux données propres à l'application depuis d'autres composants.
  6. Jetpack DataStore :

    • Remplace les préférences partagées.
    • Fournit une API asynchrone pour stocker des données.
    • Supporte la typification des données et la gestion des erreurs.

Voici un exemple d'utilisation des préférences partagées :

// Obtenir l'objet SharedPreferences
val sharedPref = activity?.getPreferences(Context.MODE_PRIVATE) ?: return
with (sharedPref.edit()) {
    // Enregistrer une valeur
    putBoolean("is_first_run", false)
    apply() // Appliquer les changements de manière asynchrone
}

// Lire la valeur
val isFirstRun = sharedPref.getBoolean("is_first_run", true)

Voici un exemple d'utilisation de SQLite :

// Création de la base de données et de la table
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) {
        // Logique de mise à jour de la base de données
    }
}

// Insertion de données
val dbHelper = DBHelper(this)
val db = dbHelper.writableDatabase

val values = ContentValues().apply {
    put(DBHelper.COLUMN_NAME, "Exemple de nom")
}

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