Vous êtes sur la page 1sur 29

PROJET DANALYSE : APPLICATION ANDROID

NFP 210 :Construction Rigoureuse des logiciels

Elie Dagher

6601f

Maha Dehayni

4996f

Sous la direction de :M .Pascal Fares

Septembre 2011

Tables des Matires Introduction : ...................................................................................................................................................... 4 Partie A :Outils de dveloppement.................................................................................................................. 5 Premire tape Deuxime tape Troisieme Etape Quatrime Etape :Tlchargement et Installation d'Eclipse ...................................................................... 5 :Installation du Plugin Android pour Eclipse ................................................................ 5 :Ajouter Andoid SDK ........................................................................................................ 8 :Cration dun AVD (Android Virtual Devices ) ........................................................... 8

Partie B :Creation du projet ............................................................................................................................ 9 Cration de notre projet ................................................................................................................................. 9 Configuration BuildPath................................................................................................................................11 Structures du Project Androde....................................................................................................................12 Partie C : Notre application............................................................................................................................. 14 I. A. B. C. II. 1. 2. 3. 4. Vue globale...........................................................................................................................................14 IMC :une application qui calcule lindice de masse corporelle ....................................................15 Convertisseur de temprature : ......................................................................................................15 Un jeu Snake. ...................................................................................................................................16 Explication du code..............................................................................................................................17 Layout :.............................................................................................................................................17 Activity : ...........................................................................................................................................20 Le Manifest : ....................................................................................................................................24 Autres ressources : ..........................................................................................................................25

Gnrer le fichier .apk ..................................................................................................................................... 27

Introduction :
Android est un systme d'exploitation pour tlphone portable de nouvelle gnration dvelopp par Google. Dans ce tutoriel nous vous expliquons les mthodes de dveloppement Android .Nous commenons tout dabord par expliquer comment installer simplement les outils de dveloppement Android .Nous vous montrerons galement comment raliser une application pour Android avec petite explication de code, cration des classes, mthodes etc.

Partie A :Outils de dveloppement


Premire tape

:Tlchargement et Installation d'Eclipse

SDK ( Software Development Kit) La version complte d'Eclipse (outillage Java, outillage pour le dveloppement de plug-ins, code source) se nomme Eclipse SDK. Pour tlcharger lEclipse SDK, il faut aller ce lien http//:www.eclipse.org/downloads/download.php?file/=eclipse/downloads/drops/R-3.6.2201102101200/eclipse-SDK-3.6.2-win32.zip Pour fonctionner, Eclipse ncessite un JDK (Java Development Kit). Cest l'environnement dans lequel le code Java est compil pour tre transform en bytecode afin que la machine virtuelle Java (JVM) puisse l'interprter. La version 3.6.2 dEclipse SDK a t valide avec le JDK 5.0, l'utilisation d'un JDK 6 ne pose gnralement pas de problme. :

Deuxime tape

:Installation du Plugin Android pour Eclipse

AndroidDevelopmentTools ( ADT ) Cest un plugin pour Eclipse SDK dsign pour vous donner un environnement convenable pour construire des applications Android. Apres dmarrer Eclipse : 1 -Ouvrir le menu Help Install new software. 2 -Appuyer sur le bouton Add. 3 -Remplir les champs suivants :

Name par ADT Android et Location : http//:dl-ssl.google.com/android/eclipse

Lorsque linstallation termine on trouve le Developer Tools . Cochez la case juste devant Developer Tools puis cliquez sur le bouton Next

Accepter les termes dutilisation puis appuyer sur finish pour lancer linstallation.

Appuyer sur Next

Lorsque linstallation se termine Eclipse demande de redmarrer, appuyer sur yes .

Troisieme Etape

:Ajouter Andoid SDK

Dans Eclipse ouvrir le menu Window Preferences Cliquer sur Android Apply ou ok . puis Browse et indiquer la location du SDK puis cliquer sur

Quatrime Etape

:Cration dun AVD (Android Virtual Devices )

Un AVD est un tlphone Android virtuel dans lequel on va lancer notre application. Allez dans le menu WindowAndroid SDK and AVD Manager Cliquez sur New et remplissez cette fentre :

Puis cliquez sur Create AVD.

Partie B :Creation du projet


Cration de notre projet
Allez dans le menu filenewAndroid Project

Remplissez les champs :Application Name, Package name, Create activity. Puis cliquez sur Finish. Vous obtenez comme la figure suivante.

10

Configuration BuildPath
Right click sur le nom de votre projet First Project Choisissez Build PathConfigure Build Path Allez dans longlet Order and Export et cochez la case devant Android 2.2

11

Puis cliquer sur Ok .

Structures du Project Androde


src :Ce dossier contient les sources de votre application (code JAVA) et les packages. Le paquetage de notre application est lb.isae.FirstProject, bien sr vous pouvez avoir plusieurs. gen :Dossier qui contiendra le fichier R.java (le code source produit par les outils de compilation dAndroid). assets : Contient les fichiers statiques fournis avec lapplication pour son dploiement sur le terminal. res :Cest le dossier qui contiendra les ressources de votre application (images, vidos, styles), c'est--dire les fichiers statiques fournis avec lapplication, soit sous leur forme initiale, parfois sous une forme prtraite. o drawable-hpdi :Contient toutes images, bitmaps dont vous avez besoin pour votre application en haute rsolution . o drawable-ldpi :Contient toutes images, bitmaps dont vous avez besoin pour votre application en basse rsolution . o drawable-mdpi :Contient toutes images, bitmaps dont vous avez besoin pour votre application en moyenne rsolution .

12

o layout :Le SDK Android offre une technique de cration dinterfaces graphiques laide de fichiers XML .Cest dans ce dossier que vous inclurez lensemble des fichiers dcrivant vos interfaces. o values :Ce dossier contient un ensemble de fichiers dcrivant les valeurs utilises par votre application .On peut, par exemple, y mettre des chaines de caractres, des entiers, des couleurs (strings.xml), des tableaux (arrays.xml), etc . AndroidManifest.xml :Cest le point de dpart de toute application Android. Cest dans ce fichier que lon dclare ce que contiendra lapplication- les activits, les services, ).

13

Partie C : Notre application


I. Vue globale

Dans ce tutoriel nous avons prpar 3 applications :

14

A. IMC :une application qui calcule lindice de masse corporelle.

B. Convertisseur de temprature : Une application qui convertie la temprature entre Celsius et Fahrenheit.

15

C. Un jeu Snake.
1 2

16

II. Explication du code


Pour donner une vue gnrale de la manire de programmation nous allons expliquer le code de lapplication IMC : 1. Layout : Avant de coder, commenons par dfinir notre GUI (Graphical User Interface) qui rpond notre besoin. Tout dabord il faut noter que lors de cration de projet un fichier main.xml sera crer audessous du rpertoire res/Layout, comme nous avons dj utilis ce fichier pour crer le menu principal de notre projet nous avons alors besoin dun autre : Pour le faire pointez nimporte o dans larborescence de votre projet puis faites un right clique et pointez sur New -> Other->Android XML File.

Right click sur Layout

Choisissez Other

17

Cliquez ici puis appuyez sur

Ici vous introduisez le nom du fichier XML et vous choisissez le type layout. Vous obtenez une interface graphique vide pour la remplir vous choisissez des lments de la palette qui se trouve gauche de lcran :
18

Palette EditText

TextView

Trois TextView sans text pour afficher le resultat du test.

Deux boutons .

Ici nous avons utilis : Un Table Layout :qui nous permet darranger les lments graphiques sur des diffrentes lignes(TableRow) et sur le mme niveau. Un TableRow :cest un lment du TableLayout, chaque TableRow contient zro ou plusieurs cellules. Des widgets :deux TextView qui reprsentent des textes statiques (Taille et poids) et trois autres sans textes qui reprsentent le rsultat du test, et deux boutons (calcul qui lance lexcution de lActivit, et Menu qui nous permet de retourner au menu principal). EditText :qui permet lutilisateur dentrer sa taille et son poids. Et voici limc.xml qui sera cr automatiquement partir du GUI :

19

<?xml version"=1.0 "encoding"=utf-8"?> <TableLayout android:id"=@+id/TableLayout01 " android:layout_width"=fill_parent " android:layout_height"=fill_parent" android:stretchColumns"=1" xmlns:android"=http//:schemas.android.com/apk/res/android " android:weightSum"=1 "android:background"=@color/myColor"> <TableRow android:layout_width"=100dp "android:layout_weight"=0.13"> <TextView android:id"=@+id/textView1 " android:textAppearance"=?android:attr/textAppearanceMedium " android:layout_height"=wrap_content "android:text"=Taille " android:layout_width"=0dp "android:layout_weight"=1"></TextView> <EditText android:id"=@+id/taille "android:layout_width"=0dp " android:numeric"=decimal "android:layout_weight"=1 " android:layout_height"=wrap_content"> <requestFocus></requestFocus> </EditText> </TableRow> <TableRow android:layout_weight"=0.13"> <TextView android:id"=@+id/textView2 " android:textAppearance"=?android:attr/textAppearanceMedium " android:layout_height"=wrap_content "android:text"=Poids " android:layout_weight"=1 "android:layout_width"=0dp"></TextView> <EditText android:id"=@+id/poids "android:layout_height"=wrap_content " android:numeric"=decimal "android:layout_weight"=1 " android:layout_width"=0dp"> </EditText> </TableRow> <TextView android:id"=@+id/result " android:textAppearance"=?android:attr/textAppearanceMedium " android:layout_width"=wrap_content "android:layout_height"=0dp " android:layout_weight"=0.13"></TextView> <TextView android:id"=@+id/classf " android:textAppearance"=?android:attr/textAppearanceMedium " android:layout_width"=wrap_content "android:layout_height"=0dp " android:layout_weight"=0.13"></TextView> <TextView android:id"=@+id/pbs " android:textAppearance"=?android:attr/textAppearanceMedium " android:layout_width"=wrap_content "android:layout_height"=0dp " android:layout_weight"=0.13"></TextView> <Button android:onClick"=myClickHandler "android:id"=@+id/b2IMC " android:layout_width"=wrap_content "android:text"=Calcul " android:layout_height"=0dp "android:layout_weight"=0.13"></Button> <Button android:layout_height"=0dp "android:layout_weight"=0.13 " android:id"=@+id/b1IMC "android:layout_width"=wrap_content " android:text"=Menu"></Button> </TableLayout>

2. Activity : Lors de la cration du projet, Eclipse donne la possibilit de crer une classe java qui tend la classe Activity et qui explique le comportement de lapplication lors de son excution.

20

Normalement, pour chaque application dans notre projet FirstProject il faut y avoir une classe dactivit ; pour ce but crer sous le rpertoire src et dans le paquetage lb.isae.FirstProject une classe java nomme imc.java qui tend la classe Activity : Cette classe doit contenir : a. Une mthode onCreate qui override la mthode onCreate dans la classe Activity :Cette mthode rcupre tous les identifiants des Widgets dfinis dans imc.xml laide de la mthode prdfinie setContentView(R.layout.imc) : La classe R.java gnr automatiquement nous permettra trs facilement de rcuprer des rfrences Java sur ces Widgets. Ensuite nous allons ajouter des couteurs afin de capter les vnements.
package lb.isae.FirstProject; import import import import import import import import lb.isae.FirstProject.R; android.app.Activity; android.os.Bundle; android.view.View; android.widget.Button; android.widget.EditText; android.widget.TextView; android.widget.Toast;

public class IMC extends Activity {

La methode onCreate Rcupration des identifiants.

Un couteur

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.imc);

Button b1IMC=(Button) findViewById(R.id.b1IMC); b1IMC.setOnClickListener(new View.OnClickListener (){ @Override public void onClick(View v) { finish();

} }); }

. . . . . . . . .

Ici lcouteur associ au bouton Menu (b1IMC) permet de fermer lapplication et de retourner vers le menu principal. b. Une autre manire pour rcuprer les vnements cest de crer lcouteur dans une mthode autre que la mthode onCreate puis dassocier cette mthode au
21

bouton convenable travers le GUI, comme nous avons fait avec le bouton calcul :
public void myClickHandler(View view) { EditText taille=(EditText)findViewById(R.id.taille); EditText poids=(EditText)findViewById(R.id.poids); TextView result=(TextView)findViewById(R.id.result); if ((taille.getText().length() == 0)||(poids.getText().length()==0)) { Toast.makeText(this, "Entrez une valeur", Toast.LENGTH_LONG).show(); return; } float inputValue1 = Float.parseFloat(taille.getText().toString()); float inputValue2 = Float.parseFloat(poids.getText().toString()); result.setText(imcCalc(inputValue1,inputValue2));

}//end myClickhandler . . . . . . . . . . . .

Comment associer le bouton Calcul avec la mthode myClickHandler ? Dans le GUI slectionnez le bouton Calcul->Right click-> properties-> onClick

22

Une petite fentre apparat, remplissez comme suit :

Puis appuyez sur Ok, maintenant chaque fois quon appuie sur le bouton Calcul, lvnement dfinit dans myClickHandler sera dclench. c. Enfin, pour terminer la classe IMC.java nous ajoutons les mthodes appeles par myClickHandler qui effectuent le calcul de lindice IMC et affiche le rsultat lcran:
23

public String imcCalc(float val1,float val2){ String res""=; val1=val1/100; val1=*val1; float imc=val2/val1; res"=Votre Imc+" =imc;

imcCalc calcule lindice IMC=poids/taille2

TextView classf=(TextView)findViewById(R.id.classf); classf.setText(classification(imc)); TextView pbs=(TextView)findViewById(R.id.pbs); pbs.setText(pbs(imc)); return res; Classification du poids } public String classification(float imc){ String res="Classification:" ; If(imc<18.5)res"=+Poids Insuffisant"; If(imc>=18.5 && imc<24.9) res=+ "Poids Normal"; If(imc>=24.9 && imc<29.9) res=+ "Superpoids ou pr-obsit"; If(imc>=29.9 && imc<34.9) res=+ "Obsit Classe1 (modre)" ; If(imc>=34.9 && imc<39.9) res=+ "Obsit Classe2 (svre)" ; If(imc>=39.9) res=+ "Obsit Classe3 (massive)" ; return res; } Problmes de sant public String pbs(float imc){ String res= "Pbs de sant :" ; If(imc<18.5) res=+ "Accru"; If(imc>=18.5 && imc<24.9)res=+ "Moindre"; If(imc>=24.9 && imc<29.9) res=+ "Accru"; If(imc>=29.9 && imc<34.9) res=+ "Modre"; If(imc>=34.9 && imc<39.9) res=+ "Elev"; If(imc>=39.9) res =+"Trs elev"; return res; } }//end Class IMC.java

3. Le Manifest : Chaque activit crer doit tre dfinit dans le manifest :AndroidManifest.xml :

24

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="lb.isae.FirstProject" android:versionCode="1" android:versionName="1.0"> Le nom de lactivit dans <application android:icon="@drawable/icon" le src sans le .java android:label="@string/app_name"> <activity android:name=".Menu" android:theme="@android:style/Theme.NoTitleBar" Premire android:screenOrientation="portrait" activit lancer android:label="@string/menu_name" lors du android:configChanges="keyboardHidden|orientation"> <intent-filter> dclenchement <action android:name="android.intent.action.MAIN" /> de lapplication <category android:name="android.intent.category.LAUNCHER" /> Les autres activits dclarer ici </intent-filter> lintrieur du </activity>

tag<application></application>
<activity android:name=".Convert"></activity> <activity android:name=".IMC" android:label="Indice De Masse Corporelle"/> <activity android:name=".Snake2Activity"/> </application> <uses-sdk android:minSdkVersion="8" /> </manifest>

4. Autres ressources : Autre que le layout et au-dessous du rpertoire res on a des rpertoires drawable concernant les images (dj expliqus au dbut de ce tutoriel), et un rpertoire values qui nous aide dfinir des diverses valeurs :comme des chane de caractres, des couleurs de fonds, des fonts color, . Par exemple nous avons choisir la couleur bleu comme un couleur de fond de imc.xml pour le faire : A. Double cliquez sur string.xml pour louvrir. B. Cliquez sur Add puis choisir le type de donnes, on aura plusieurs dans notre cas choisissez Color puis appuyez sur Ok.

25

Remplissez les valeurs convenables comme suit :

Pour associer cette couleur au background dimc.xml, ouvrez ce dernier, right click sur le Background ->properties-> background

26

Une fentre apparat, choisissez la couleur myColor

Gnrer le fichier .apk


Aprs la ralisation de notre application il est trs intressant de savoir gnrer le fichier vous permettant dinstaller cette dernire sur votre terminal Android, ce fichier est le .apk Pour le faire : 1. Ouvrez file puis slectionnez Export 2. Slectionnez Android->Export Android Application-> Next
27

3. Choisissez le projet :dans notre cas cest le FirstProject->Next. 4. Comme tant le premier projet on na pas un keystore alors il faut crer un nouvel et lutiliser pour les prochains projets. Un keystore sagit dune signature incorpore votre application la protgeant ainsi de tout individu mal intentionn. Cochez alors loption create new Keystore et remplissez : Location :o sera stocke la cl de signature Password :le mot de passe choisi. Confirm :retaper le mot de passe pour le confirmer. Appuyez sur Next Il vous demande de remplir un peu plus de case comme suit :

Alias :Le nom de lquipe Password :pas ncessairement comme le keystore. Confirm :retapez le password. Validity year : 25 ans par exemple
28

First and Last Name Appuyez sur Next, il vous demande de choisir une destination pour le fichier .apk Choisissez une et cliquez sur finish Enfin laide dun cble USB transfrez FirstProject.apk sur votre sdcard.

29

Vous aimerez peut-être aussi