Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Initiation à Android
1. Institut Supérieur d’Informatique
Université de Tunis el Manar
TP2 : Initiation à la
Programmation avec Android
Programmation Mobile – 2ème Licence – Systèmes Embarqués
Année Universitaire : 2011/2012
MME. LILIA SFAXI
2. TP2 : Initiation à la Programmation avec Android 1
TP2 : Initiation à la Programmation avec Android
Programmation Mobile
Objectifs du TP
Ce TP est une initiation à Android. Nous allons réaliser les premiers pas pour l’écriture d’applications :
installation de l’environnement, et création des premières applications simples.
I. Introduction à la programmation avec Android
Android est un système d’exploitation open-‐‑source pour smartphones, PDA et terminaux mobiles, et basé sur
Linux. Il a été conçu par la startup Android, qui a été rachetée par Google en 2005.
C’est la première plateforme mobile open-‐‑source et entièrement paramétrable. Il permet au développeur de
profiter au maximum de tout ce que peut fournir un appareil mobile, permettant ainsi à une application de lancer un
appel, envoyer un email ou SMS, utiliser l’appareil photo du téléphone…
Android est en constante évolution grâce aux applications innovantes que réalisent les développeurs. En 8 mois,
plus de 6000 applications et jeux ont été développés et publiés dans le market. Il est possible de récupérer les sources
d’Android à partir du site : http://source.android.com
Pour les développeurs, il faut consulter le site http://developer.android.com. Vous y trouverez les
téléchargements nécessaires, de la documentation, comment publier votre application…
I. 1. Installations et outils
Pour créer des applications pour Android, il est nécessaire d’installer les éléments suivants :
JDK : Java Development Kit : Environnement de développement de Java, qui permet de compiler et exécuter des
applications écrites en Java.
Eclipse : IDE (Integrated Developement Environment) pour une écriture simplifiée du code. On utilise avec Eclipse
le plugin ADT (Android Developement Tools) adapté aux applications Android.
Android SDK : Android Software Developement Kit : Le SDK fournit une API et un ensemble d’outils pour le
développement d’applications sur Android. Il contient principalement un émulateur (AVD pour Android Virtual
Device) qui permet de modéliser un appareil mobile réel en définissant les options logicielles et matérielles
désirées. Le SDK est disponible en téléchargement pour les plateformes Linux, Mac et Windows à l'ʹadresse
suivante : http://developer.android.com/sdk/index.html
MME. LILIA SFAXI 2011/2012
3. TP2 : Initiation à la Programmation avec Android 2
I. 1. 1. Installation d’Eclipse et du plugin ADT
Avant d’installer Eclipse, il faut d’abord installer la JDK, qui nous permettra de compiler des programmes Java.
La JDK contient également une JRE (Java Runtime Environment), l’environnement d’exécution permettant d’exécuter des
programmes écrits en Java. Comme Eclipse est écrit en Java, il ne pourra pas démarrer sans JRE.
Il est possible de télécharger JDK à partir du site suivant :
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Remarque : Dans Ubuntu, il vaut mieux installer JDK directement à partir de la console en tapant :
sudo apt-get install openjdk-7-jdk
Pour installer Eclipse, il suffit d’aller sur www.eclipse.org et de télécharger la version correspondante à votre
plateforme. La version que nous allons utiliser est la version de base d’Eclipse : Eclipse IDE for Java Developers.
Remarque : Dans Ubuntu, installer Eclipse directement à partir de la console en tapant :
sudo apt-get install eclipse-platform
Une fois Eclipse installé, il faut installer le plugin ADT. Pour cela :
Aller vers Help -‐‑> Install new software…
Dans la fenêtre qui apparaît, cliquer sur Add… , et taper le lien : https://dl-‐‑ssl.google.com/android/eclipse/ dans la
partie Location comme indiqué dans la figure suivante :
MME. LILIA SFAXI 2011/2012
4. TP2 : Initiation à la Programmation avec Android 3
Cliquer sur OK, et suivez la procédure d’installation du plugin ADT pou Eclipse.
Une fois le plugin installé, le redémarrage d’Eclipse est nécessaire.
Pour vérifier que l’installation s’est bien déroulée, aller vers File -‐‑> New -‐‑> Other… et vérifier qu’une nouvelle
partie appelée Android a été ajoutée.
MME. LILIA SFAXI 2011/2012
5. TP2 : Initiation à la Programmation avec Android 4
I. 1. 2. Installation du SDK
Le SDK est fourni sous la forme d’un fichier compressé. Une fois ce fichier décompressé, aller vers le répertoire
tools et exécuter le fichier android. L’application Android Manager est lancée :
L’étape suivante est donc d’installer les plateformes Android nécessaires. Il suffit de sélectionner les plateformes
qu’on désire installer, et cliquer sur Install Packages…
Remarque : Pour les besoins de notre application, il suffit d’installer le package Tools et le package Android 2.3.3.
I. 1. 3. Configuration du SDK sur Eclipse
Dans la barre d’outils principale d’Eclipse, on peut noter la présence de boutons supplémentaires :
Permet de lancer le SDK Manager
Permet de configurer et démarrer l’émulateur AVD
Permet de lancer Android Lint, qui scanne le projet Android pour d’éventuels bugs
Pour créer un nouveau projet
Permet de démarrer un projet de test pour Android
Permet de guider l’utilisateur pour la création d’un nouveau fichier XML
Pour configurer le SDK :
Cliquer sur Window -‐‑> Preferences puis sélectionner Android
Indiquer le chemin vers votre répertoire SDK.
MME. LILIA SFAXI 2011/2012
6. TP2 : Initiation à la Programmation avec Android 5
En cliquant sur Apply, la liste des plateformes installées sera affichée.
Une fois le SDK configuré, il est possible de démarrer l’émulateur. Pour cela, cliquer directement sur .
TAF-‐‑1 : Lancer votre émulateur Android 2.3.3. Le configurer pour qu’il utilise la résolution WQVGA400.
Naviguer dessus pour découvrir l’interface sur laquelle vous allez travailler.
I. 2. Ma première application Android
Pour créer un projet Android :
Cliquer sur , ou aller à File -‐‑> New -‐‑> Android Project
Spécifier le nom du projet : Helloworld, et cliquer sur Next
Choisissez la plateforme Android à utiliser (dans notre cas 2.3.3), cliquer sur Next
Dans la fenêtre suivante, vous devez spécifier un package à utiliser, qui doit être unique. Ce package doit
contenir au moins deux niveaux. Dans notre cas, on peut taper isi.helloworld
MME. LILIA SFAXI 2011/2012
7. TP2 : Initiation à la Programmation avec Android 6
Cliquer sur Finish. Un nouveau projet apparaît.
Voyons l’arborescence d’un projet Android :
Répertoire contenant Répertoire contenant les fichiers générés par l’ADT.
les sources du projet Notamment, le fichier R.java contient les références
vers les ressources du projet
Fichier jar contenant le
framework Android
Répertoire contenant les données chargées sur le
mobile à la compilation. Ex : fichiers texte, audio,
Répertoire contenant les ressources du projet. Il est vidéo…
lu par l’ADT pour générer le fichier R.java.
Regroupe l’ensemble des images (haute,
basse et moyenne résolution)
Répertoire pour la description de l’interface
graphique avec des fichiers .xml
Dossier contenant les fichiers décrivant des valeurs
utilisées dans l’application. Ex : strings.xml pour les
Fichier définissant le comportement de l’application. chaînes, arrays.xml pour les tableaux…
Ex : nom, icône, thème, version, activités…
TAF-‐‑2 : Exécuter votre application Helloworld. Qu’affiche-‐‑t-‐‑elle ? où a été spécifié cet affichage dans le code ?
MME. LILIA SFAXI 2011/2012
8. TP2 : Initiation à la Programmation avec Android 7
II. Création d’applications avec Android SDK
II. 1. Notion d’Activity
Une activité est la composante principale pour une application Android. Elle représente l’implémentation métier
dans une application Android, permettant de gérer l’ensemble des vues et ressources.
Une activité peut être avec ou sans interface utilisateur. Il est possible d’avoir plusieurs activités dans le même
programme. Elle doit toujours être déclarée dans le fichier AndroidManifest.xml.
Une activité n’est pas linéaire, elle est soumise à plusieurs évènements. Chaque événement est représenté dans
une méthode. La figure suivante illustre le cycle de vie d’une application Android :
MME. LILIA SFAXI 2011/2012
9. TP2 : Initiation à la Programmation avec Android 8
onCreate() : Cette méthode est appelée à la création d’une activité. Elle permet de l’initialiser. C’est ici que
l’interface graphique est spécifiée.
onStart() : Cette méthode est appelée quand l’application est démarrée.
onResume() : Cette méthode est appelée quand l’application passe (ou repasse) en avant-‐‑plan.
onPause() : Appelée quand l’application passe en arrière-‐‑plan et qu’une autre application se met devant.
onStop() : Appelée quand l’application n’est plus visible.
onRestart() : Appelée quand l’application redevient visible.
onDestroy() : Appelée quand votre application est fermée par le système à cause d’un manque de ressources, ou
par l’utilisateur à l’utilisation d’un finish().
Il est donc permis de spécifier un comportement pour chacun de ces évènements. Pour cela, il suffit de rajouter les
méthodes correspondantes (de la même manière que pour la méthode onCreate) déjà générée par ADT.
Pour générer ces méthodes, commencer à taper le nom de la méthode dans le fichier de code, puis taper sur les
touches Ctrl-‐‑Espace.
Cliquer sur la méthode qui vous est proposée. Son code sera automatiquement généré.
TAF-‐‑3 :
1. Générer les méthodes correspondant à chacun des évènements listés dans le cycle de vie.
2. Nous désirons voir le comportement de l’activité pour chacun de ces évènements. Pour cela, chaque
méthode va afficher son nom.
MME. LILIA SFAXI 2011/2012
10. TP2 : Initiation à la Programmation avec Android 9
Indication : Utiliser le code suivant pour l’affichage :
Toast helloToast = Toast.makeText(this, "message à afficher", Toast.LENGTH_LONG);
helloToast.setGravity(Gravity.CENTER, 0, 0);
helloToast.show();
3. Dans la méthode onCreate, commenter la ligne
setContentView(R.layout.main);
et la remplacer par :
TextView tv = new TextView(this);
tv.setText("Hello, Android");
setContentView(tv);
que constatez-‐‑vous ?
II. 2. Modification de l’interface graphique
II. 2. 1. Ajout d’éléments graphiques
L’interface graphique est gérée grâce aux fichiers xml se trouvant dans le répertoire layout. ADT offre une
interface conviviale pour gérer ces fichiers, et pour manipuler graphiquement les éléments de l’interface.
Il est ainsi possible de créer tous les éléments de l’interface grâce à des drag-‐‑and-‐‑drop.
TAF-‐‑4 : Ajouter à votre application Helloworld un bouton et un champs de saisie. Noter les changements dans le
code XML du fichier main.xml. Exécuter.
Indication : Avant d’exécuter, annuler l’opération 3/ du TAF-‐‑3.
Pour définir le comportement de votre bouton, suivez les étapes suivantes :
MME. LILIA SFAXI 2011/2012
11. TP2 : Initiation à la Programmation avec Android 10
II. 2. 2. Comportement d’un bouton
Dans le code du fichier main.xml, associer un identifiant et un titre à votre bouton :
<Button android:id="@+id/boutonAfficher"
android:text="Afficher"
… />
Créer un attribut dans votre activité de type Button :
private Button bAfficher;
Dans la méthode onCreate() :
– Initialiser l’attribut bAfficher en lui associant le bouton créé dans le main.xml :
this.bAfficher = (Button) this.findViewById(R.id.boutonAfficher) ;
– Associer un comportement à votre bouton :
this.bAfficher.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//comportement de votre bouton
}
});
TAF-‐‑5 : Modifier le comportement de votre bouton pour qu’il affiche J’ai été cliqué ! pendant 2 secondes dans un
Toast, quand il est cliqué.
Indication : Modifier l’instruction d’affichage pour qu’elle devienne comme suit :
Toast helloToast = Toast.makeText(HelloworldActivity.this, "message à afficher",
Toast.LENGTH_LONG);
helloToast.setGravity(Gravity.CENTER, 0, 0);
helloToast.show();
II. 2. 3. Création d’une nouvelle activité
Pour créer une nouvelle activité, il faut suivre les étapes suivantes :
Créer une nouvelle classe dans votre package qui hérite de la classe Activity.
Générer la méthode onCreate().
Créer un nouveau fichier layout, et y ajouter les éléments graphiques désirés.
Associer ce fichier layout à votre activité dans la méthode onCreate().
Ajouter la nouvelle activité dans le fichier Manifest.
Remarque : Pour cette nouvelle activité, dans le manifest, ne pas garder la balise <intent-filter> : Cette
balise permet, grâce à son action android.intent.action.MAIN, de spécifier que l’activité en cours est l’activité de
départ de l’application.
MME. LILIA SFAXI 2011/2012
12. TP2 : Initiation à la Programmation avec Android 11
TAF-‐‑6 : Créer une nouvelle activité qu’on nommera ClicActivity, contenant uniquement un champs de texte de
type TextView, qu’on nommera clicText. Ecrire dans ce champs de texte la chaîne : « Bonjour ! »
II. 2. 4. Passage d’une activité à une autre
Le passage entre deux activités requiert un Intent. Un Intent est un conteneur d’information. Il permet de passer
des messages entre deux activités. L’activité appelante pourra ainsi transmettre des informations à l’application appelée,
ainsi qu’au système Android.
Il existe plusieurs manières de créer un Intent. Nous allons choisir la suivante :
Intent myIntent = new Intent(<contexte>, <classe de l’activité cible>);
Pour démarrer une autre activité, il faut lancer la méthode startActivity(Intent i) de la classe Activity initiale.
TAF-‐‑6 : Configurer le comportement de votre bouton pour qu’il lance l’activité ClicActivity, et observez le
résultat.
Indications :
1. Dans le Intent, le contexte sera HelloworldActivity.this, et la classe cible sera ClicActivity.class.
2. Pour démarrer l’activité, la méthode startActivity doit être appelée à partir de l’objet HelloworldActivity.this
II. 2. 5. Récupération de messages entre activités
Pour passer un message à une activité, on ajoute des Extras aux Intents. Par exemple :
myIntent.putExtra(<id>, <chaîne>);
va passer la chaîne de caractère chaîne dans une variable appelée id à l’activité cible de l’Intent.
Dans l’activité cible, on récupère cet Extra en utilisant :
getIntent().getStringExtra(<id>) ;
TAF-‐‑7 : Modifier vos activités de manière à ce que :
1. L’utilisateur saisit une chaîne dans le champ de saisie de HelloworldActivity
2. L’utilisateur clique sur le bouton
3. ClicActivity est chargée, et le champs de texte TextView contient la chaîne qu’a saisi l’utilisateur.
III. Homework
Installer l'ʹenvironnement Android chez vous. Créer une application contenant :
MME. LILIA SFAXI 2011/2012
13. TP2 : Initiation à la Programmation avec Android 12
-‐‑ Deux champs de texte
-‐‑ Un bouton fermer qui permet de fermer définitivement l’application
-‐‑ Un bouton concaténer qui va charger une deuxième activité. Cette dernière va afficher les deux chaînes
concaténées.
MME. LILIA SFAXI 2011/2012