Développement Mobile Initiation au développement d’applications Android http://www.devmob.sitew.com Rami AMRI (rami.amri@gmail.com) FST 2011/2012
Un périphérique mobile c'est quoi ? Un écran très petit Pas de clavier/souris L’interface graphique devra être la plus simple possible Pas de disque dur mais une ROM Fonctionne sur batterie Moyens de communication variés
Avantages Secteur en pleine explosion Tendance à remplacer les ordinateurs fixes et même portables dans le futur. Qui peut se passer de son téléphone portable de nos jours?
Succes Story Ge Wang et Jeff Smith créent l’application « ocarina », En un mois, 400000 personnes ont payé un dollar pour la télécharger . Steve Demeter a développé un jeu pour iPhone appelé Trism durant ses temps libres en y travaillant la nuit et les week-ends. il a déjà gagné plus de 250.000$
Android: c’est quoi? un système d'exploitation open source pour Smartphones, PDA et terminaux mobiles conçu par Android, une startup rachetée par Google, et annoncé officiellement le 5 novembre 2007 Le symbole d’Android est un petit robot vert appelé Bugdroid. Il est sous licence « creative commons by (3.0) » et peut donc être utilisé librement
Qui y participe? Plusieurs entreprises contribuent à Android à travers l’ Open Handset Alliance
Architecture de la plateforme système d'exploitation fondé sur un noyau Linux, il comporte une interface spécifique, développée en Java, les programmes sont exécutés via un interpréteur JIT La couche au dessus du noyau contient les bibliothéques natives d’Android ecrite en C/C++ mais invoquées via des interfaces Java . Dans cette couche, on trouve le Surface Manager, 2D and 3D graphics, Media codecs, SQL database (SQLite)…
Architecture de la plateforme Le Noyau Linux Device drivers Memory management Process management Networking
Architecture de la plateforme Bibliothèques C/C++ Accès à travers des interfaces Java Surface manager 2D and 3D graphics Codecs Media , SQLite, …
Architecture de la plateforme Android Runtime Machine virtuelle Dalvik Un ensemble de librairies noyau qui fournissent la plupart des fonctionnalités disponibles dans les librairies noyau du langage de programmation Java
Architecture de la plateforme Application Framework Interfaces API Activity manager – permet de gérer le cycle de vie d’une application
Architecture de la plateforme Applications un client mail, un programme pour les SMS, calendrier, cartes, navigateur, contacts, et d’autres.
Principaux concurrents Apple avec iOS Research In Motion (RIM) avec BlackBerry OS Samsung avec Bada (même si Samsung utilise aussi Android) HP avec webOS (En août 2011, HP a annoncé sa décision de ne plus développer de matériel exploitant WebOS) Nokia avec Symbian OS (en 2011, Nokia a annoncé l'abandon de Symbian) Microsoft avec Windows Phone
Android Vs les autres
De quoi on a besoin? Java SDK Android IDE Eclipse + plugin ADT (Android Developement Tools) réduit le temps de développement et test
Installation SDK et Eclipse Pour développer une application Android , on aura besoin de l'éditeur de code Eclipse et le SDK Android 1. Téléchargement et installation d’Eclipse: Sur le site officiel eclipse.org, il y a plusieurs versions, on a besoin d’Eclipse Classic . 2. Téléchargement et installation du SDK Android: télécharger le SDK Android sur le site android.com, dans la section Developers
Installation SDK et Eclipse 3. Installation du plugin Eclipse (ADT) Pour intégrer le SDK Android à Eclipse , dans le menu en haut Help > Instal New Software, clic gauche sur le bouton Add, tapez Android Plugin pour le champ Name et https://dl-ssl.google.com/android/eclipse/ dans le champ Location et enfin cliquez sur OK.
Installation SDK et Eclipse
Installation SDK et Eclipse Eclipse va chercher des informations par rapport à ce plugin, il nous propose Android DDMS et Android Development
Installation SDK et Eclipse 1. Permet de créer des AVD(Android Virtuel Device) qu'on les appelle EMULATEUR 2. Pour créer un projet Android 3. Pour ajouter un nouveau fichier de type XML.
Installation SDK et Eclipse
Création et utilisation de l’emulateur L’émulateur sert à exécuter le code Java et xml que nous avons développer sans avoir besoin de brancher un téléphone réel Pour créer un émulateur (AVD) on clique sur cette icone
Création et utilisation de l’emulateur Ensuite cliquez sur Available package, cochez et enfin Install Selected
Création et utilisation de l’emulateur Cochez Accept All puis cliquez sur Install.
Création et utilisation de l’emulateur cliquez sur Virtual Devices >>New . une boite de dialogue s'ouvre, pour créer votre Emulateur vous avez 3 choses à saisir :
Création et utilisation de l’emulateur
Concepts fondamentaux Concepts fondamentaux à préciser : • les activités ; • les vues et contrôles (et leur mise en page) ; • les ressources ; • le fichier de configuration appelé également manifeste.
Concepts fondamentaux Les vues sont les éléments de l’interface graphique que l’utilisateur voit et sur lesquels il pourra agir. Les vues contiennent des composants, organisés selon diverses mises en page (les uns à la suite des autres, en grille…).
Concepts fondamentaux Les contrôles (boutons, champs de saisie, case à cocher, etc.) sont eux-mêmes un sous- ensembles des vues. Ils ont besoin d’accéder aux textes et aux images qu’ils affichent (par exemple un bouton représentant un téléphone aura besoin de l’image du téléphone correspondante). Ces textes et ces images seront puisés dans les fichiers ressources de l’application.
Concepts fondamentaux Une activité peut être assimilée à un écran structuré par un ensemble de vues et de contrôles composant son interface de façon logique : elle est composée d’une hiérarchie de vues contenant elles-mêmes d’autres vues. exemple : formulaire d’ajout de contacts ou encore un plan Google Maps sur lequel vous ajouterez de l’information. Une application comportant plusieurs écrans, possédera donc autant d’activités
Concepts fondamentaux Le fichier de configuration XML de l’application. C’est un fichier indispensable à chaque application qui décrit entre autres : le point d’entrée de votre application (quel code doit être exécuté au démarrage de l’application) ; quels composants constituent ce programme ; les permissions nécessaires à l’exécution du programme (accès à Internet, accès à l’appareil photo...).
Concepts fondamentaux
Composantes d’une application Android Composants applicatifs : activités ; services ; fournisseurs de contenu ; gadgets ; Éléments d’interaction : objets Intent ; récepteurs d’Intents ; notifications.
Composants applicatifs Activity (Activité) représente le bloc de base d’une application. Elle correspond à la partie présentation de l’application et fonctionne par le biais de vues qui affichent des interfaces graphiques et répondent aux actions utilisateur. Une activité correspond à un écran mais elle peut contenir plusieurs vues.
Composants applicatifs Content providers (fournisseurs de contenus) permet de gérer et de partager des informations. Un même fournisseur permet d’accéder à des données au sein d’une application et entre applications (partage des données).
Composants applicatifs Le service est un composant qui fonctionne en tâche de fond, de manière invisible. Ses principales utilisations sont la mise à jour de sources de données ainsi que d’activités visibles et le déclenchement de notifications.
Composants applicatifs Le gadget est un composant graphique qui s’installe sur le bureau Android. Le calendrier qui affiche de l’information ou le lecteur audio qui permet de contrôler la lecture de fichiers sont deux exemples de gadgets que l’on trouve souvent sur un écran d’accueil. .
Éléments d’interaction Intents (intentions) Les intentions sont des messages système. Elles sont émises par le terminal pour prévenir les applications de la survenue de différents événements, exp: une modification matérielle (comme l’insertion d’une carte SD) ou l’arrivée de données (telle la réception d’un SMS)
Éléments d’interaction Vous pouvez non seulement répondre aux intentions, mais également créer les vôtres afin de lancer d’autres activités ou pour vous prévenir qu’une situation particulière a lieu Exemple : émettre l’intention X lorsque l’utilisateur est à moins de 100 mètres d’un emplacement Y)
Éléments d’interaction Récepteur d’Intents : il permet à une application d’être à l’écoute des autres afin de répondre aux objets Intent qui lui sont destinés et qui sont envoyés par d’autres composants applicatifs
Éléments d’interaction Notification : une notification signale une information à l’utilisateur sans interrompre ses actions en cours
Cycle de Vie d’une application Android
Première application Android On clique sur la deuxième icône (créer un projet Android) et on aura une boite de dialogue qui va nous permettre de créer notre application.
Première application Android
Première application Android Project name : Ce nom de projet est totalement indépendant de votre application Android. Ce n’est en fait que le nom donné à votre projet dans votre Workspace sous Eclipse. Build Target : Spécifier API qu'on souhaite utilisé : Android 1.5 ou Android 1.6 … selon les besoins de notre application et les services qu'on souhaite utilisées. Application Name
Première application Android Package Name : Par convention, le nom du package s’écrit de cette forme suivante : extension_de_votre_domaine.nom_du_do maine.nom_du_projet exp: com.LFI3.HelloWorld Create Activity : c'est l'Activity principale de l'application, on peut la nommer : HelloWorldActivity , cette Activity est représentée par une classe Java HelloWorldActivity.java
Première application Android Explication de l'arborescence du projet
Première application Android src : ce dossier contient les sources de votre application (code JAVA) et les packages. com.LFI3.HelloWorld: un package de votre application. Bien sûr, vous pouvez avoir plusieurs packages dans votre application. HelloWorldActivity.java : notre principale activité. gen : dossier qui contiendra le fichier R.java (ce fichier est généré automatiquement à partir de vos vues et fichiers de ressource).
Première application Android R.java : ce fichier est automatiquement généré par le SDK Android à chaque précompilation. assets : contient des données qui pourront être utilisées dans votre application (images, vidéos, licence, etc.). res : c'est le dossier qui contiendra les ressources de votre application (images, vidéos, styles). drawable-hpdi : contient toutes les images, bitmaps dont vous avez besoin pour votre application en haute résolution.
Première application Android drawable-ldpi : contient toutes les images, bitmaps dont vous avez besoin pour votre application en basse résolution. drawable-mdpi : contient toutes les images, bitmaps dont vous avez besoin pour votre application en moyenne résolution. Icon.png : l'icône de votre application, cette icône sera affichée sur le bureau.
Première application Android layout : le SDK Android offre une technique de création d'interfaces graphiques à l'aide de fichiers XML. C'est dans ce dossier que vous inclurez l'ensemble des fichiers décrivant vos interfaces Main.xml : le fichier principal de votre interface. values : ce dossier contient un ensemble de fichiers décrivant les valeurs (pseudovariables) utilisées par votre application. On peut, par exemple, y mettre des chaînes de caractères (strings.xml), des tableaux (arrays.xml), des entiers, des couleurs, etc.
Première application Android Strings.xml : fichier qui contient vos déclarations de chaînes de caractères. AndroidManifest.xml : définit le comportement de votre application au système Android. Ce fichier définit par exemple le nom, l'icône, la version min du SDK, les activités, les services, etc.