Cours avancé Android apprendre à programmer des applications
Agenda
u Présentation de la plateforme de développement mobile « Android »
u Design d’une interface utilisateur pour une application Android
u Persistances des données: Manipulation des fichiers
u Persistances des données: Manipulation des bases de données
u Communication Réseaux
Présentation Android
u Android est un système d’exploitation basé sur une version modifiée de Linux.
u Lancé par une startup appelée « Android Inc » pour acquérir le monde du web.
u En 2005 le projet ainsi que l’équipe des développeurs sont rachetés par Google.
u Plateforme de développement mobile free & Open Source.
Versions d’Android
|
Code name |
Version |
API level |
|
(no code name) |
1.0 |
API level 1 |
|
(no code name) |
1.1 |
API level 2 |
|
Cupcake |
1.5 |
API level 3, NDK 1 |
|
Donut |
1.6 |
API level 4, NDK 2 |
|
Eclair |
2.0 |
API level 5 |
|
Eclair |
2.0.1 |
API level 6 |
|
Eclair |
2.1 |
API level 7, NDK 3 |
|
Froyo |
2.2.x |
API level 8, NDK 4 |
|
Gingerbread |
2.3 - 2.3.2 |
API level 9, NDK 5 |
|
Gingerbread |
2.3.3 - 2.3.7 |
API level 10 |
|
Honeycomb |
3.0 |
API level 11 |
|
Honeycomb |
3.1 |
API level 12, NDK 6 |
|
Honeycomb |
3.2.x |
API level 13 |
|
Ice Cream Sandwich |
4.0.1 - 4.0.2 |
API level 14, NDK 7 |
|
Ice Cream Sandwich |
4.0.3 - 4.0.4 |
API level 15, NDK 8 |
|
Jelly Bean |
4.1.x |
API level 16 |
|
Jelly Bean |
4.2.x |
API level 17 |
|
Jelly Bean |
4.3.x |
API level 18 |
|
KitKat |
4.4 - 4.4.4 |
API level 19 |
|
Lollipop |
5.0 |
API level 21 |
Fonctionnalités Android
u Storage: Avec usage du SQLite
u Connectivité: Support de GSM/GPRS,EDGE, UMTS 3G, 4G LTE, WiFi u Messagerie: Support du MMS,SMS.
u Navigateurs Web: Navigateurs par défaut installé avec support d’autres navigateur comme: Chrome, Opera..
u Support Media: Codec par défaut installé pour supporter: H.263, H.264 (sur
3GP or MP4), MPEG-4 SP, AMR, AMR-WB (sur 3GP), AAC, HE-AAC (sur MP4
3GP), MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF et BMP
u Support Matériel: GPS, Senseur Accelorometre, Boussole et Camera integrés.
u Multi-touch.
u Multi-Tâche
u Support Flash: Android 2.3 supports Flash 10.1.
u Tethering: Pour le partage sans/avec fil d’internet.
Architecture Android
Outils de développement Android
u Java 2 Standard Edition (JDK)
u Android SDK (Software Development Kit)
u Eclipse for Java
u Android Development Tools (ADT) plugin Android pour Eclipse
Installation du ADT
Emulateur « Android Virtual Device »
u Outil permet de simuler un smartphone, Tablette…etc, qui fonctionne avec le système d’exploitation Android, il permet aussi de paramétrer:
u La taille de mémoire allouée.
u Taille de l’écran
u Type de processeur
u Version de l’OS Android.
u Taille d’espace de stockage interne u et carte mémoire miniSD.
Créer votre première application « Android »
Créer votre première application « Android »
Activités & Intent
u Activité:
u Une fenêtre qui contient une interface utilisateur, avec un ou plusieurs composants UI
u Classe Java qui hérite de la classe « Activity »
u Chaque activity charge les Composants UI via le fichier XML dénifie dans
Méthodes de base ”Activity”
u onCreate(): appellee quand l’instance une fois crée.
u onStart(): appellée quand l’activité est visible à l’utilisateur.
u onResume(): appellée quand l’activité commence à interéagire avec l’utilisateur.
u onPause(): appelé quand l’activité en cours est suspendu.
u onStop(): appelé quand l’activité en cours est arrêtée.
u onDestroy(): appelée quand l’activité est détruite par le système, nétoyée de la mémoire.
u onRestart():appellée quand l’activité est redémarrée après un arrêt.
Diagramme d’état « Activité »
Intents
u Ils sont des méchanismes de liaison entre les activités.
u Une Application Android contient de 0 au N activité.
u « intent » est considéré comme un moyen de navigation entre les différentes Activités.
u Syntexe:
Layouts
u C’est des composant UI
u Définie une structure visuelle pour les activités.
u Peut être définie en mode:
u Déclaratif XML
u Impératif sur Java: en créant une instance du Layout dans le fichier classe java
u RelativeLayout
u LinearLayout
u FrameLayout
u GridLayout
u TableLayout
Views
u Représente un formalise de donnée sur l’interface utilisateur
u ListView: pour un affichage séquentiel d’éléments
u GridView: pour un affichage organisé sous forme de grille.
u WebView: pour un affichage des pages via des url web ou bien un directement un flux HTML.
u ImageView: pour affichage des média images.
Contrôles UI communs
u Button: Définie un bouton cliquable pour l’utilisateur peut executer une action
u EditText, AutoCompleteTextView: un champs texte editable.
u Checkbox: on/off switch permet au choix booléen.
u RadioGroup, RadioButton: permet la sélection dans un choix multiple.
u ToggleButton: c’est un bouton indiquant l’état on/off u Spinner: liste déroulante de valeur à sélectionner.
u DatePicker, TimePicker: contrôles pour sélection de date et heure.
Menus
u Eléments d’expérience utilisateur.
Persistance des données
Préférence de utilisateurs
u Mécanisme de sauvegarde des donnée de configuration des utilisateurs.
u Exemple: Taille de la police.
u Facilite la gestion des données hétérogènes de petites tailles.
u L’objet « SharedPreferences » permet de saugevarder les données de l’utilisateurs dans un fichier XML.
u L’objet « SharedPreferences » permet aussi de retrouver les donnée avec facilité.
u Le stockage est sous forme de paires « key,Value »
Stockage sur le fichiers
u Il existe deux type de stockage de fichier:
u Internal Storage (mémoire interne)
u SD Storage ( carte mémoire )
u Recommandé pour les données non structurés.
u Ecriture:
u Classe: FileOutputStream
u Lecture:
u Classe: FileInputStream
Modes d’accès des fichiers
u MODE_WORLD_READABLE: Accessible pour tout le monde.
u MODE_PRIVATE: accès réservé juste à l’application qui l’a créé.
u MODE_APPEND: Ecrit le contenu à la fin du fichier quand il existe déjà.
u MODE_WORLD_WRITABLE: fichier accessible en écriture à tout le monde
Stockage externe (SD Card)
u Ajout de la permission « android.permission.WRITE_EXTERNAL_STORAGE »
u Classe « File »
u Récupération du chemin du répertoire des la carte mémoire.
u Création du répertoire dans la carte mémoire.
u Création du flux d’écriture « FileOutputStream »
u Ecriture du contenu en utilisant la classe: «OutputStreamWriter»
u Moyen efficace et simple pour le stockage des données.
u Sélection des donnée performante via les requêtes SQL.
u Assure l’intégrité des données.
u Android utilise le système des bases de donnée SQLite
u SQLite est un système de gestion des bases de donnée basé sur des fichiers
u Les fichiers de base de données sont sauvegardés dans le repertoire:
u Data/data//databases
u Classe de manipulation des bases de données hérite de la base de base : SQLiteOpenHelper
u Bonne pratique est de créer une Classe DBHelper qui contient toutes les méthodes de création, insertion, modification et suppression des données.
u Initialisation des variables:
u Création de la base de donnée si elle n’existe pas.
Manipulation des bases de données
u Web Services sont un moyen de communication de donnée interplateformes
u Communication basée sur les protocoles HTTP/HTTPS.
u Format d’échange de donnée est basé sur SOAP (Simple Object Access Protocol).
u Implémentation:
u Inspection du fichier descriptif du Web Service WSDL.
u Ajout de la référence kSoap. u Ajout du fichier jar ksoap dans le répertoire /libs
u Initialisation des variables:
u Namespace du Web Service
u URL: adresse du Service Web
u Enveloppe Soap avec la version
u Les appels Web Services doivent être implémenté dans les thread séparés.
u Les appels WS héritent des la classe AsyncTask
