Options de gestion de données pour les applications Android

Cette astuce rapide Android vous présentera les différentes options de stockage de données disponibles sur la plate-forme Android. Un bref aperçu pratique avec des considérations pour chaque option de stockage sera également fourni..

Lorsque vous développez des applications Android, vous disposez de nombreuses options pour stocker et gérer vos données. Selon l'application, il est possible que vous utilisiez plus d'une de ces tâches pour différentes tâches de données..


Stockage interne

Vous pouvez stocker des éléments de données sur la mémoire de stockage interne sur les appareils de vos utilisateurs. L'avantage, c'est qu'il ne repose sur aucun support externe, mais l'inconvénient est que certains périphériques disposent d'un espace de stockage extrêmement limité. Stocker dans la mémoire interne signifie essentiellement sauvegarder des fichiers de données dans la structure de répertoires de périphériques internes.

Le code Java suivant illustre l’ouverture d’un fichier pour la sortie de données:

// récupère un objet FileOutputStream en passant le nom de fichier FileOutputStream dataFileOutput = openFileOutput ("datafile", Context.MODE_PRIVATE);

Lorsque vous enregistrez des fichiers sur la mémoire de stockage interne, les autres applications ne peuvent pas y accéder et, par défaut, l'utilisateur non plus, ce qui offre une bonne fiabilité. La méthode d'écriture FileOutputStream prend les paramètres d'octet. Vous pouvez donc utiliser cette technique uniquement pour stocker des données que votre programme peut convertir en octets..


Cartes SD

De nombreux utilisateurs d'Android dépendent d'un stockage multimédia externe, tel qu'une carte SD, en raison d'un stockage interne insuffisant. Les cartes SD offrent à vos applications une plus grande quantité d'espace de stockage, mais elles imposent des considérations supplémentaires. Par exemple, vous ne pouvez pas supposer qu'un utilisateur aura une carte SD ou une autre ressource multimédia externe. Pour cette raison, votre code de programmation doit effectuer des contrôles avant de stocker les données de cette manière. Vous devez également accepter la possibilité pour l'utilisateur de changer de carte SD..

À l'aide de la classe Environment, vos applications peuvent vérifier la disponibilité d'un stockage externe inscriptible comme suit:

if (Environment.getExternalStorageState (). equals (Environment.MEDIA_MOUNTED)) // peut utiliser le stockage externe

Il convient également de garder à l'esprit que les fichiers enregistrés sur une carte SD peuvent être consultés directement par d'autres applications et par l'utilisateur, de sorte que les données sont plus vulnérables à la corruption..


Bases de données

Si votre application utilise des éléments de données plus complexes, vous pouvez créer une base de données SQLite pour les stocker à l'aide du modèle relationnel. Lorsque vous créez une base de données SQLite pour votre application, vous pouvez y accéder à partir de n'importe quel point de votre code Java. Elle ne sera accessible nulle part ailleurs. L'utilisation d'une base de données présente de nombreux avantages, tels que la possibilité de stocker et d'exécuter des requêtes structurées..

Pour construire une base de données SQLite personnalisée à partir de votre code Java, vous pouvez étendre la classe SQLiteOpenHelper, puis définir et créer vos tables dans la méthode "onCreate", comme suit:

public void onCreate (SQLiteDatabase db) db.execSQL ("CREATE TABLE Élément (ItemID INTEGER, ItemName TEXT);"); 

Cette instruction crée une table de base de données avec deux colonnes. La classe SQLiteDatabase fournit le moyen de gérer les données, y compris les méthodes de requête, d'insertion et de mise à jour. Un inconvénient potentiel de l'utilisation d'une base de données SQLite dans vos applications Android est la quantité de code de traitement requise et les compétences requises. Si vous connaissez déjà SQL, vous ne devriez pas avoir de problèmes.


Préférences partagées

Si vous devez stocker des éléments de données simples pour vos applications, l'approche la plus simple consiste à utiliser les préférences partagées. C'est peut-être l'option de gestion de données la plus simple à mettre en œuvre, mais elle ne convient que pour les éléments de type primitif tels que les nombres et le texte. À l'aide des préférences partagées, vous modélisez vos éléments de données sous forme de paires de valeurs clés. Le code suivant montre comment acquérir une référence à l'objet SharedPreferences pour une application et y écrire une valeur:

// récupère les préférences, puis éditeur, définit un élément de données SharedPreferences appPrefs = getSharedPreferences ("MyAppPrefs", 0); SharedPreferences.Editor prefsEd = appPrefs.edit (); prefsEd.putString ("dataString", "certaines données de chaîne"); prefsEd.commit ();

Tout ce que vous enregistrez dans les préférences partagées sera toujours disponible lors de la prochaine exécution de votre application. Il est donc idéal pour enregistrer des éléments tels que les préférences et les paramètres de l'utilisateur. Lorsque votre application démarre, vous pouvez vérifier les préférences partagées, puis présenter votre interface et vos fonctionnalités en conséquence. Le code suivant montre comment extraire l'élément de données string:

// récupère les préférences puis récupère les données sauvegardées en spécifiant une valeur par défaut SharedPreferences appPrefs = getSharedPreferences ("MyAppPrefs", 0); String savedData = appPrefs.getString ("dataString", "");

Espace archivage sur le Web

Étant donné que les appareils Android offrent une connectivité Internet, vos applications peuvent bien sûr utiliser les données stockées sur le Web. Naturellement, vous devez réfléchir à la manière dont vos applications vont gérer une connectivité restreinte ou manquante. Comme avec une application Web, cette option vous permet de stocker des données en utilisant pratiquement n'importe quelle plate-forme ou modèle que vous préférez. Le langage Java bénéficie également d'une gamme de bibliothèques standard pour la gestion des données extraites sur un réseau, à partir de sources telles que des bases de données SQL et des documents XML. Les packages java.net et android.net fournissent des classes pour la gestion des données en réseau..


Conclusion

Si vous développez dans Eclipse, vous pouvez contrôler manuellement les aspects du stockage de données sur des périphériques virtuels dans la perspective DDMS..

Inévitablement, vous devez adapter votre approche de gestion des données à vos propres projets de développement Android. La plate-forme est flexible et offre donc beaucoup de choix. Lorsque vous implémentez la gestion des données dans vos applications, veillez à les tester sur les appareils réels ainsi que dans l'émulateur, car il existe un risque d'erreur supplémentaire lorsque les utilisateurs accèdent à vos fonctionnalités dans leurs propres contextes uniques..


A propos de l'auteur

Sue Smith
Je suis un développeur Web / logiciel et un rédacteur technique / humoristique - voir BeNormal.info pour plus de détails. Les applications Nonsense sont ma première tentative de développement Android. J'ai écrit pour de nombreux clients, y compris Smashing Magazine. Mes propres sites incluent le magazine BrainDeadAir spoof arts. Suivez-moi sur Twitter @BrainDeadAir ou écrivez-moi à [email protected].