Android, Persistance des données



Documents pareils
Stockage de données sous Android

Bases de données et fournisseurs de contenu

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

TP2 : Client d une BDD SqlServer

Placez vous au préalable à l endroit voulu dans l arborescence avant de cliquer sur l icône Nouveau Répertoire

1. Base de données SQLite

Optimisations des SGBDR. Étude de cas : MySQL

Datalift. + + Architecture Modularité Déploiements. d j = 09/04/2015 Laurent BIHANIC

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Approche Contract First

Application web de gestion de comptes en banques

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8

Cours: Administration d'une Base de Données

Cours Bases de données

CREATION WEB DYNAMIQUE

Compte Rendu d intégration d application

Procédure d installation :

Guide de mise à jour BiBOARD

Information utiles. webpage : Google+ : digiusto/

CNAM Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création

Serveurs de noms Protocoles HTTP et FTP

LOGICIEL KIPICAM : Manuel d installation et d utilisation

La technologie Java Card TM

Introduction à JDBC. Accès aux bases de données en Java

Flux de données Lecture/Ecriture Fichiers

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

Encryptions, compression et partitionnement des données

OpenPaaS Le réseau social d'entreprise

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Créer et partager des fichiers

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

1/ Présentation de SQL Server :

Structure fonctionnelle d un SGBD

Java et les bases de données

Alfstore workflow framework Spécification technique

Android 4 Les fondamentaux du développement d'applications Java

ASR3. Partie 4 Le système de fichier. Arnaud Clérentin, IUT d Amiens, département Informatique

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

La base de données XML exist. A. Belaïd

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Configuration de plusieurs serveurs en Load Balancing

Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet

Guide de Démarrage. Introduction... 2 Scénarios pour l utilisation de votre procloud@ocim.ch... 2 Scénarios à venir :... 2

INSTALLATION DE L AGENT CT EASY BACKUP LAN REV 1.0/

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Projet gestion d'objets dupliqués

Notes de cours : bases de données distribuées et repliquées

S approprier les TICE 1 dans sa pratique pédagogique

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

TP Bases de données réparties

Open Source Job Scheduler. Installation(s)

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Education Delivery Intelligent Tool

LES ACCES ODBC AVEC LE SYSTEME SAS

GUIDE PRATIQUE déplacements professionnels temporaires en France et à l étranger

NF26 Data warehouse et Outils Décisionnels Printemps 2010

Synchroniser ses photos

Sauvegarde et Restauration d un environnement SAS

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

Système d information géographique SavGIS 3.Démarrer avec SavGIS Installer et démarrer SavGIS

Comment Créer une Base de Données Ab Initio

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Tutorial sur SQL Server 2000

Procédure pas à pas de découverte de l offre. Service Cloud Cloudwatt

Utiliser Access ou Excel pour gérer vos données

Projet Business Object

SPECIFICATIONS TECHNIQUES : Gestion des Médicaments et des commandes de médicaments

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

PHP. PHP et bases de données

Le stockage. 1. Architecture de stockage disponible. a. Stockage local ou centralisé. b. Différences entre les architectures

Déploiement des manuels numériques sur tablette. Mode d emploi intégrateur / administrateur

Introduction à ElasticSearch

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

MODE OPERATOIRE OPENOFFICE BASE

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

UE 8 Systèmes d information de gestion Le programme

GPC Computer Science

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Projet Android (LI260) Cours 2

Objectifs du TP : Initiation à Access

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

I4 : Bases de Données

Le stockage local de données en HTML5

Logiciel de gestion de caisse et d ardoises

MANUEL D INSTALLATION DE WATCHDOC 2011 (EVALUATION)

Groupe Eyrolles, 2003, ISBN : X

Cobian backup. Sauvegarde. Cobian Backup est un logiciel de sauvegarde gratuit fonctionnant sous windows. Nathan Garaudel PCplus 01/01/2014

Capacité de mémoire Tablettes

Cours 1: Java et les objets

Programmation Orientée Objet Java

Accès aux bases de données

Transcription:

Android, Persistance des données Sébastien Jean IUT de Valence Département Informatique v1.0, 8 mars 2015

Persistance des données Certaines applications ont besoin de sauvegarder des informations entre 2 exécutions Plusieurs mécanismes existent dans Android Préférences Stockage interne Stockage externe Base de données embarquée Stockage distant Certains types de stockage sont par nature privés Il est possible de partager des données persistantes entre applications via des fichiers ou l API Content Provider Sébastien Jean (IUT Valence) M4104, Persistance des données v1.0, 8 mars 2015 1 / 22

Préférences Stockage, par défaut privé, de paires clé/valeurs Valeurs de types simples : int, long, float, ou String Obtenir (ou créer) un profil de préférences depuis une activité getsharedpreferences(name) ou getpreferences() Retourne une référence du type vimpsharedpreferences permettant de retrouver les valeurs L ajout ou la suppression de valeur s effectue à travers un objet spécifique (SharedPreferences.Editor) Sébastien Jean (IUT Valence) M4104, Persistance des données v1.0, 8 mars 2015 2 / 22

Préférences Sébastien Jean (IUT Valence) M4104, Persistance des données v1.0, 8 mars 2015 3 / 22

Préférences Sébastien Jean (IUT Valence) M4104, Persistance des données v1.0, 8 mars 2015 4 / 22

Préférences Exemple d utilisation des préférences (source : android.developer.com) Sébastien Jean (IUT Valence) M4104, Persistance des données v1.0, 8 mars 2015 5 / 22

Stockage interne Lecture/écriture de données dans un fichier, dans l espace de stockage interne associé à l application API pour création/écriture/lecture Données privées Non visible par l utilisateur Destruction à la suppression de l application Création possible d un stockage interne en lecture seule par dépôt dans /res/raw et accessible via R.raw Sébastien Jean (IUT Valence) M4104, Persistance des données v1.0, 8 mars 2015 6 / 22

Stockage interne Création et écriture dans un fichier L appel à openfileoutput sur l activité ou le contexte retourne une référence sur le flux d écriture dans le fichier (créé si inexistant) cf. FileOutputStream Lecture dans un fichier L appel à openfileinput sur l activité ou le contexte retourne une référence sur le flux de lecture dans le fichier cf. FileInputStream L appel à openrawinput(resid sur l activité ou le contexte retourne une référence sur le flux de lecture dans le fichier en lecture seule getcachedir retourne une référence de type File désignant le répertoire où peuvent être créés des fichiers temporaires Sébastien Jean (IUT Valence) M4104, Persistance des données v1.0, 8 mars 2015 7 / 22

Stockage externe Utilisation de l espace de stockage externe (typiquement SD) Pas toujours disponible (par exemple si le stockage externe est déjà monté par un PC sur lequel l équipement est connecté) L état de disponibilité et les restrictions d accès en écriture sont disponibles via Environment.getExternalStorageState() Fichiers publics (catégories prédéfinies), ou privés En cas de montage externe, les fichiers sont visibles (et lisibles) L accès à des fichiers n appartenant pas à l application nécessite de requérir les permissions dans le manifeste (WRITE read+write) Sébastien Jean (IUT Valence) M4104, Persistance des données v1.0, 8 mars 2015 8 / 22

Stockage externe Catégories prédéfinies de fichiers (constantes de la classe Environment) DIRECTORY_MUSIC, DIRECTORY_PODCASTS, DIRECTORY_RINGTONES, DIRECTORY_ALARMS, DIRECTORY_NOTIFICATIONS, DIRECTORY_DCIM, DIRECTORY_PICTURES, DIRECTORY_MOVIES, DIRECTORY_DOWNLOADS Fichiers/répertoires publics Accès via getexternalstoragepublicdirectory(type) Catégories prédéfinies uniquement Fichiers/répertoires privés Accès via getexternalstoragedirectory(type) Catégories prédéfinies (espaces privés) ou null Accès en lecture/écriture via des flux, création de répertoires via File.mkdirs Sébastien Jean (IUT Valence) M4104, Persistance des données v1.0, 8 mars 2015 9 / 22

Bases de données Base de données embarquée SQLite Open source (http://www.sqlite.org) Empreinte mémoire faible ( 250kB) support limité des types (TEXT, INTEGER, REAL) API pour la création de bases et le traitement de requêtes SQL Par extension de la classe SQLiteOpenHelper Sébastien Jean (IUT Valence) M4104, Persistance des données v1.0, 8 mars 2015 10 / 22

Bases de données SQLiteOpenHelper, exemple Ici, SQL_CREATE_ENTRIES et SQL_DELETE_ENTRIES sont des requêtes de création et de destruction de tables Il est préférable que chaque table possède une clé primaire de type INTEGER appelée _ID Sébastien Jean (IUT Valence) M4104, Persistance des données v1.0, 8 mars 2015 11 / 22

Bases de données L objet de type SQLiteOpenHelper est créé en général dans la méthode oncreate d une activité La base de données créée est stockée sous forme de fichier dans DATA/data/APP_NAME/databases/DATABASE_NAME DATA est le répertoire retourné par un appel à Environment.getDataDirectory() Remarque : l exemple précédent est simpliste et écrase la base de données à chaque démarrage de l application (un test d existence du fichier permet de l éviter) La base de données est détruite à la désinstallation de l application Remarque : il est aussi possible d embarquer dans l archive.apk le fichier d une base de données créée et alimentée hors de l équipement (cf répertoire asset) Sébastien Jean (IUT Valence) M4104, Persistance des données v1.0, 8 mars 2015 12 / 22

Bases de données Ajout de données dans une table getwritabledatabase permet d accéder en écriture à la base Sébastien Jean (IUT Valence) M4104, Persistance des données v1.0, 8 mars 2015 13 / 22

Bases de données Recherche de données dans une table Cursor permet d analyser les résultats ( ResultSet dans JDBC) Sébastien Jean (IUT Valence) M4104, Persistance des données v1.0, 8 mars 2015 14 / 22

Bases de données Suppression de données dans une table Mise à jour de données dans une table Sébastien Jean (IUT Valence) M4104, Persistance des données v1.0, 8 mars 2015 15 / 22

L API Content Provider Permet l échange de données entre applications Echange contrôlé par un ensemble de permissions Les données sont vues avec un formalisme proche de celui d une base de données relationnelle L application "serveur de données" implémente l interface ContentProvider, les applications "clientes de données" utilisent un ContentResolver et désignent les données cibles à travers des URIs Sébastien Jean (IUT Valence) M4104, Persistance des données v1.0, 8 mars 2015 16 / 22

L API Content Provider Utilisation du ContentResolver par une application cliente pour obtenir des données Remarque : données obtenues à travers un objet de type Cursor Sébastien Jean (IUT Valence) M4104, Persistance des données v1.0, 8 mars 2015 17 / 22

L API Content Provider Similitudes query / SQL Sébastien Jean (IUT Valence) M4104, Persistance des données v1.0, 8 mars 2015 18 / 22

L API Content Provider Implémentation d un content provider Choix du stockage des données Fichier, ou base de données Définition des URIs Implémentation des méthodes de l API ContentProvider Sébastien Jean (IUT Valence) M4104, Persistance des données v1.0, 8 mars 2015 19 / 22

L API Content Provider Méthodes de l interface ContentProvider Sébastien Jean (IUT Valence) M4104, Persistance des données v1.0, 8 mars 2015 20 / 22

L API Content Provider Déclaration du content provider dans le manifeste Les URis permettant l accès aux données sont construites sous la forme content://authority/path Sébastien Jean (IUT Valence) M4104, Persistance des données v1.0, 8 mars 2015 21 / 22

L API Content Provider Déclaration des permissions Sébastien Jean (IUT Valence) M4104, Persistance des données v1.0, 8 mars 2015 22 / 22

Fin! Sébastien Jean (IUT Valence) M4104, Persistance des données v1.0, 8 mars 2015 23 / 22