790 likes | 1.19k Vues
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
E N D
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 « creativecommons 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 noyaucontient les bibliothéques natives d’Androidecrite en C/C++ maisinvoquées via des interfaces Java . Danscettecouche, 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
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 • 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.
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 :
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 vuessont 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 XMLde 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...).
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 serviceest 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 gadgetest 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
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 • 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_domaine.nom_du_projetexp: 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.