initiation à android

13
Institut Supérieur d’Informatique Université de Tunis el Manar MME. LILIA SFAXI TP2 : Initiation à la Programmation avec Android Programmation Mobile – 2 ème Licence – Systèmes Embarqués Année Universitaire : 2011/2012

Upload: lilia-sfaxi

Post on 21-Jun-2015

2.676 views

Category:

Education


2 download

DESCRIPTION

Visitez http://liliasfaxi.wix.com/liliasfaxi

TRANSCRIPT

Page 1: Initiation à Android

 

Institut  Supérieur  d’Informatique  Université  de  Tunis  el  Manar  

MME.  LILIA  SFAXI  

 

 

TP2  :  Initiation  à  la  Programmation  avec  Android  Programmation  Mobile  –  2ème  Licence  –  Systèmes  Embarqués  

Année  Universitaire  :  2011/2012    

 

Page 2: Initiation à Android

TP2  :  Initiation  à  la  Programmation  avec  Android      

 

MME.  LILIA  SFAXI                  2011/2012  

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    

Page 3: Initiation à Android

TP2  :  Initiation  à  la  Programmation  avec  Android      

 

MME.  LILIA  SFAXI                  2011/2012  

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  :  

Page 4: Initiation à Android

TP2  :  Initiation  à  la  Programmation  avec  Android      

 

MME.  LILIA  SFAXI                  2011/2012  

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.    

 

Page 5: Initiation à Android

TP2  :  Initiation  à  la  Programmation  avec  Android      

 

MME.  LILIA  SFAXI                  2011/2012  

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.  

Page 6: Initiation à Android

TP2  :  Initiation  à  la  Programmation  avec  Android      

 

MME.  LILIA  SFAXI                  2011/2012  

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  

Page 7: Initiation à Android

TP2  :  Initiation  à  la  Programmation  avec  Android      

 

MME.  LILIA  SFAXI                  2011/2012  

6  

 

Cliquer  sur  Finish.  Un  nouveau  projet  apparaît.  

Voyons  l’arborescence  d’un  projet  Android  :  

 

TAF-­‐‑2  :  Exécuter  votre  application  Helloworld.  Qu’affiche-­‐‑t-­‐‑elle  ?  où  a  été  spécifié  cet  affichage  dans  le  code  ?    

 

   

Fichier  jar  contenant  le  framework  Android  

Répertoire  contenant  les  sources  du  projet  

Répertoire  contenant  les  fichiers  générés  par  l’ADT.  Notamment,  le  fichier  R.java  contient  les  références  vers  les  ressources  du  projet      

Répertoire  contenant  les  données  chargées  sur  le  mobile  à  la  compilation.  Ex  :  fichiers  texte,  audio,  vidéo…  Répertoire  contenant  les  ressources  du  projet.  Il  est  

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  chaînes,  arrays.xml  pour  les  tableaux…  Fichier  définissant  le  comportement  de  l’application.  

Ex  :  nom,  icône,  thème,  version,  activités…  

Page 8: Initiation à Android

TP2  :  Initiation  à  la  Programmation  avec  Android      

 

MME.  LILIA  SFAXI                  2011/2012  

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  :  

 

 

Page 9: Initiation à Android

TP2  :  Initiation  à  la  Programmation  avec  Android      

 

MME.  LILIA  SFAXI                  2011/2012  

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.    

Page 10: Initiation à Android

TP2  :  Initiation  à  la  Programmation  avec  Android      

 

MME.  LILIA  SFAXI                  2011/2012  

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  :  

Page 11: Initiation à Android

TP2  :  Initiation  à  la  Programmation  avec  Android      

 

MME.  LILIA  SFAXI                  2011/2012  

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.    

Page 12: Initiation à Android

TP2  :  Initiation  à  la  Programmation  avec  Android      

 

MME.  LILIA  SFAXI                  2011/2012  

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  :  

Page 13: Initiation à Android

TP2  :  Initiation  à  la  Programmation  avec  Android      

 

MME.  LILIA  SFAXI                  2011/2012  

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.