Articles récents
Android : Stocker des données
Il existe plusieurs solutions pour enregistrer des données: les shared preferences, le stockage interne ou externe, la base de données SQLite, les données réseaux, les services web...
Nous allons étudier les solutions simples qui peuvent être rapidement mises en oeuvre, les méthodes plus complexes feront l'objet d'un chapitre dédié.
1) Les préférences partagées (Shared Preferences)
Cette méthodologie permet de sauvegarder des informations dans un fichier via le framework Android. Ces informations sont accessibles aux différents processus de l'application. Ce sont des données primitives (entier, booléen, ...) qui sont stockées par paire clé-donnée. On les utilise beaucoup pour sauvegarder des données de sessions ou de configuration.Ces informations sont stockées sous /data/data/package_name/shared_prefs. Par défaut, root et l'application sont les seuls autorisés à accéder à ces informations.
1.1)Lecture de préférences
Il existe deux méthodes pour créer une préférence:L'entier passé en paramètre précise le mode d'accès aux préférences. On distingue:
Dés que nous disposons d'une instance de l'ensemble de préférences, on utilisera des méthodes pour accéder aux informations pour chaque type basique :
1.2)Ecriture de préférences
L'interface Editor de la classe SharedPreferences dispose de toutes les méthodes pour écrire: putInt, putString, putFloat, putBoolean et putLong. Les paramétres seront la clé puis la valeur.Il ne faut pas oublier d'appliquer l'écriture par la méthode commit() de façon synchrone ou apply() (copie immédiate en mémoire mais asynchrone sur le disque).
1.3)Exemple
Pour activity_main.xml:Pour MainActivity.java:
Ce qui donnera:
A noter qu'il existe une méthodologie pour réagir aux évènements sur les modifications des préférences. On enregistre par l'écouteur .registerOnSharedPeferenceChangeLitener() et en surchargeant la méthode onSharedPreferenceChanged .
2)Utiliser des fichiers pour stocker des données
2.1)Généralités
Il est possible d'utiliser la classe java.io,néanmoins le framework Android propose des outils pour manipuler les fichiers.Les méthodes disponibles pour le traitement des fichiers:
Les modes d'ouvertures sont:
2.2)Stockage statique
Android propose de stocker des fichiers dans le fichier *.apk du package de l'application. Il suffit de copier vos fichiers sous res/raw/monfic.* .Le fichier sera intégré comme une ressource par le framework (en lecture). Et par la méthode getRessources() associé à openRawRessource(), on obtient un InputStream sur notre fichier et donc on ne pourra modifier ce fichier. Il proposera des données statiques.
Dans l'exemple très simple qui suit, nous affichons la première ligne d'un fichier texte.
Le fichier text.txt:
Le layout:
Le fichier MainActivity.java:
2.3)Stockage interne
Il est possible de stocker des informations dans un fichier interne sur la mémoire du téléphone.Le fichier sera stocké sur la mémoire interne du mobile sous /data/app/data/nom_package/files . Il est possible d'explorer les fichiers avec l'outil de debug DDMS (Dalvik Debug Monitor Server). Sous Eclipse, faire par le menu Windows -> Open Perspectives -> Others... Sélectionner DDMS puis OK. Ensuite choisir l'onglet File explorer.
A noter qu'il est possible d'utiliser les boutons de menus pour récupérer le fichier et vérifier son contenu.
2.4)Stockage externe
Il s'agit de stocker un fichier dans une mémoire de masse externe à l'appareil comme par exemple avec une carte mémoire. Rappelons que le système Android est basé sur Linux, et donc il est possible d'accéder à la SDCARD par /mnt/sdcard .Le framework Android propose des méthodes pour tester si le stockage est disponible, ainsi que de connaitre son état (lecture & écriture). Environment.getExternalStorageState() renvoit le chemin du stockage externe, soit généralement /mnt/sdcard.
Pour autoriser l'écriture sur le stockage, il est nécessaire d'ajouter la ligne suivante au fichier manifest :
Ensuite, il est possible d'Ă©crire sur la sdcard en utilisant le java classique.
On trouvera le fichier sur la sdcard:
Conclusion
Nous avons vu dans ce chapitre les méthodes simples pour stocker des données. Nous verrons dans les prochains chapitre des solutions avancées comme l'utilisation de la base de données SQLite. A noter que le framework Android propose la facilité des menus préférences, qui facilitent la vie du développeur pour stocker les choix de configuration de l'utilisateur de l'application mobile.
© 2024 www.doritique.fr par Robert DORIGNY