Vous êtes sur la page 1sur 13

 

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  


 

 
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  


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  


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  


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  


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  


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  


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  


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  


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  


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  


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  


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