Développement Mobile

publicité
Développement Mobile
Initiation au développement d’applications Android
http://www.devmob.sitew.com
Rami AMRI ([email protected])
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 sousensembles 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.
•
Téléchargement