Développement Mobile Initiation au développement dapplications Android Rami AMRI...

52
Développement Mobile Initiation au développement d’applications Android http://www.devmob.sitew.com Rami AMRI ([email protected]) FST 2011/2012

Transcript of Développement Mobile Initiation au développement dapplications Android Rami AMRI...

Page 1: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

Développement Mobile

Initiation au développement d’applications Android

http://www.devmob.sitew.com

Rami AMRI ([email protected])FST

2011/2012

Page 2: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

•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

Un périphérique mobile c'est quoi ?

Page 3: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

•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?

Avantages

Page 4: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

•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$

Succes Story

Page 5: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

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

Page 6: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

•Plusieurs entreprises contribuent à Android à travers l’ Open Handset Alliance

Qui y participe?

Page 7: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

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)…

Page 8: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

Le Noyau Linux

• Device drivers• Memory management• Process management• Networking

Architecture de la plateforme

Page 9: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

• Bibliothèques C/C++• Accès à travers des interfaces Java• Surface manager• 2D and 3D graphics• Codecs Media , SQLite, …

Architecture de la plateforme

Page 10: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

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

Page 11: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

Application Framework

• Interfaces API• Activity manager – permet de gérer le

cycle de vie d’une application

Architecture de la plateforme

Page 12: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

Applications

Architecture de la plateforme

• un client mail,

• un programme pour les SMS,

• calendrier,

• cartes,

• navigateur,

• contacts, et d’autres.

Page 13: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

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

Page 14: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

Android Vs les autres

Page 15: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

•Java

•SDK Android

•IDE Eclipse + plugin ADT (Android Developement Tools) réduit le temps de développement et test

De quoi on a besoin?

Page 16: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

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

Page 17: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

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 ethttps://dl-ssl.google.com/android/eclipse/ dans le champ Location et enfin cliquez sur OK.

Page 19: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

Installation SDK et Eclipse

•Eclipse va chercher des informations par rapport à ce plugin, il nous propose Android DDMS et Android Development

Page 20: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

Installation SDK et Eclipse

1. Permet de créer des AVD(Android Virtuel Device) qu'on les appelle EMULATEUR2. Pour créer un projet Android 3. Pour ajouter un nouveau fichier de type XML.

Page 22: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

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

Page 23: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

Création et utilisation de l’emulateur

•Ensuite cliquez sur Available package, cochez et enfin Install Selected

Page 25: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

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 :

Page 27: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

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

Page 28: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

•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

Page 29: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

•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

Page 30: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

•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

Page 31: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

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

Page 33: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

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.

Page 34: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

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.

Page 35: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

•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

Page 36: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

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

Page 37: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

•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.

.

Composants applicatifs

Page 38: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

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

Page 39: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

•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

Page 40: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

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

Page 41: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

Notification :

une notification signale une information à l’utilisateur sans interrompre ses actions en cours

Éléments d’interaction

Page 42: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

Cycle de Vie d’une application Android

Page 43: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

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.

Page 45: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

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

Page 46: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

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_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

Page 47: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

•Explication de l'arborescence du projet

Première application Android

Page 48: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

•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

Page 49: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

• 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

Page 50: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

•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

Page 51: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

• 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

Page 52: Développement Mobile Initiation au développement dapplications Android  Rami AMRI (rami.amri@gmail.com) FST 2011/2012.

•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.

Première application Android