PROJE T D’ANALYSE : APPLICATION ANDROID

thoughtverdantMobile - Wireless

Jul 19, 2012 (5 years and 1 month ago)

382 views










PROJE
T D’ANALYSE
:

APPLICATION ANDROID


NFP 210
:
Construction Rigoureuse

des logiciels











Maha Dehayni

4996f

Sous la direction de

:
M
.
Pascal Fares

Septembre

2011

Elie Dagher 6601f

Tables des Matières

Intr
oduction
:

................................
................................
................................
................................
......................

4

Partie A

:
Outils de développement
................................
................................
................................
..................

5

Première

étape

:
Téléchargement

et Installation d'Eclipse

................................
................................
......

5

Deuxième étape

:
Installation du Plugin Android pour Eclipse

................................
................................

5

Troisieme Etape

:
Ajouter Andoid SDK

................................
................................
................................
........

8

Quatrième Etape

:
Création d’un AVD (Android Virtual Devices

)

................................
...........................

8

Partie B

:
Creation du projet

................................
................................
................................
............................

9

Création de notre projet

................................
................................
................................
................................
.

9

Configuration BuildPath

................................
................................
................................
................................

11

Structures du Project Androïde

................................
................................
................................
....................

12

Partie C

:

Notre application
................................
................................
................................
.............................

14

I.

Vue globale

................................
................................
................................
................................
...........

14

A.

IMC

:
une application qui calcule l’indice de mass
e corporelle
.

................................
...................

15

B.

Convertisseur de température

:

................................
................................
................................
......

15

C.

Un jeu
Snake
.

................................
................................
................................
................................
...

16

II.

Explication du code

................................
................................
................................
..............................

17

1.

Layout

:
................................
................................
................................
................................
.............

17

2.

Activity

:

................................
................................
................................
................................
...........

20

3.

Le Manifest

:

................................
................................
................................
................................
....

24

4.

Autres ressources

:

................................
................................
................................
..........................

25

Générer le fichier
.
apk

................................
................................
................................
................................
.....

27


3





















4

Introduction
:

Android

est un système d'exploitation pour téléphone portable de nouvelle génération développé
par Google
.

Dans ce tutoriel nous vous expliquons les méthodes de développement Android
.
Nous
commençons tout d’abord par expliquer comment insta
ller
simplement

les outils de
développement
Android
.
Nous vous montrerons également comment réaliser une

application
pour
Android

avec petite explication de code, création des classes, méthodes etc…
.


5


Partie A


:
Outils de développement

Première

étape



:
Téléchargement

et Installation d'Eclipse

SDK

(

Software Development Kit
)


La version complète d'Eclipse
(
outillage

Java, outillage pour le développement de plug
-
ins, code
source
)

se nomme
Eclipse SDK
.

Pour télécharger l’
Eclipse SDK
, il faut aller à ce lie
n

:
http
//:
www
.
eclipse
.
org
/
downloads
/
download
.
php?file
/=
eclipse
/
downloads
/
drops
/
R
-
3
.
6
.
2
-
201102101200
/
eclipse
-
SDK
-
3
.
6
.
2
-
win32
.
zip

Pour fonctionner, Eclipse nécessite un
JDK


(
Java

Development

Kit
).

C’est l'environnement dans lequel le code Java est compilé pour être transformé en bytecode afin
que la machine virtuelle Java
(
JVM
)

puisse l'interpréter
.


La version 3
.
6
.
2 d’Eclipse SDK a été validée avec le JDK 5
.
0, l'utilisation d'un JDK 6 ne pose
généralement pas de problème
.


Deuxième étape

:
Installation du Plugin Android pour Eclipse

AndroidDevelopmentTools
(

ADT

)

C’est un plugin pour Eclipse SDK désigné pour vo
us donner un environnement convenable

pour construire des applications Android
.

Apres démarrer Eclipse

:

1
-

Ouvrir le menu
Help


Install new software
.

2
-

Appuyer sur le bouton
Add
.

3
-

Remplir les champs suivants

:


6


Name

par « ADT Android » et
Location
:

http
//:
dl
-
ssl
.
google
.
com
/
android
/
eclipse












Lorsque l’installa
tion termine on trouve le «

Developer Tools

»
.

Cochez la case juste devant «
Developer Tools

» puis cliquez sur le bouton «
Next

»










7

Accepter les termes d’utilisation puis appuyer sur «

finish

» pour lancer l’installation
.











Appuyer sur «

N
ext

»












Lorsque l’installation se termine Eclipse demande de redémarrer, appuyer sur «

yes

»
.



8

Troisieme Etape

:
Ajouter Andoid SDK

Dans Eclipse ouvrir le menu Window
→ Preferences

Cliquer sur Android puis Browse et indiquer la location du SDK puis cliquer sur
«

Apply

» ou «

ok

»
.















Quatrième Etape

:
Création d’un AVD
(
Android Virtual Devices

)


Un AVD est un téléphone Android virtuel dans lequel on va
lancer notre application
.

Allez dans le menu Window
→Android SDK and AVD Manager

Cliquez sur New et remplissez cette fenêtre

:








9



















Puis cliquez sur Create AVD
.

Partie B


:
Creation du projet


Création de notre projet


Allez dans le me
nu file
→new→Android Project



10

Remplissez les champs

:
Application Name
,
Package name
,
Create activity
.

Puis cliquez sur Finish
.

Vous obtenez comme la figure suivante
.




11


Configuration BuildPath

Right click sur le nom de votre projet «

First Project

»

Ch
oisissez Build Path
→Configure Build Path

Allez dans l’onglet « Order and Export » et cochez la case devant « Android 2
.
2 »



12


Puis cliquer sur «

Ok

»
.


Structures du Project Androïde



src

:
Ce dossier contient les sources de votre application
(
code

JAVA
)

e
t les packages
. Le
paquetage de notre application est
lb
.
isae
.
FirstProject,
b
ien sûr vous pouvez avoir plusieurs
.



gen
:
Dossier qui contiendra le fichier R
.
java
(
le code source produit par les outils de
compilation d’Android
).



assets

:

Contient

les fichie
rs statiques fournis avec l’application pour son déploiement sur le
terminal.



res
:
C’est le dossier qui contiendra les ressources de votre application

(
images
, vidéos,
styles
), c'est
-
à
-
dire les fichiers statiques fournis avec l’application, soit sous leu
r forme
initiale, parfois sous une forme prétraitée.

o

drawable
-
hpdi
:
Contient toutes images, bitmaps dont vous avez besoin pour
votre application en haute résolution
.

o

drawable
-
ldpi
:
Contient toutes images, bitmaps dont vous avez besoin pour
votre applica
tion en basse résolution
.

o

drawable
-
mdpi
:
Contient toutes images, bitmaps dont vous avez besoin pour
votre application en moyenne résolution
.


13
o

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 interface
s.

o

values
:
Ce dossier contient un ensemble de fichiers décrivant les valeurs

utilisées par votre application
.
On peut, par exemple, y mettre des chaines de
caractères
, des e
ntiers, des couleurs


(strings
.
xml)
, des tableaux
(
arrays
.
xml
)
,
etc…
.



AndroidManifest
.
xml
:
C’est

le point de départ de toute application Android. C’est dans ce
fichier que l’on déclare ce que contiendra l’application
-

les
activités,

les services, …
).




















14

Partie C

:

Notre
application

I.

Vue globale



Dans ce
tutoriel nous avons pr
épar
é 3 applications

:


15
A.

IMC

:
une application qui calcule l’indice de masse corporelle
.




B.

Convertisseur de température

:

Une

application qui convertie la températu
re entre Celsius et Fahrenheit
.



16

C.

Un jeu
Snake
.














1

3

2

4


17
II.

Explication du code

Pour donner une vue générale de la manière de programmation nous allons expliquer le code
de l’application IMC

:

1.

Layout

:

Avant de coder, commençons par définir notre GUI
(
Graphical User Interface
)

qui répond à
notre besoin
.

Tout d’abord il faut noter que lors de création de projet un fichier main
.
xml sera créer au
-
dessous du répertoire
res
/
Layout
, comme nous avons déjà
utilisé

ce fichier pour créer le
menu principal de not
re projet nous avons alors besoin d’un autre

:

Pour le faire pointez n’importe où dans l’arborescence de votre projet puis
faites

un right
clique et pointez sur New
-
> Other
-
>Android XML File
.




Right click
sur Layout

Choisissez

Other


18


Ici vous introduisez le nom du fichier XML et vous c
hoisissez le type
layout
.

Vous obtenez
une

interface graphique vide pour l
a

remplir vous choisissez des éléments de la
palette qui se trouve à gauche de l’écran

:

Cliquez

ici

puis
appuy
ez sur

19


Ici nous avons utilisé

:



Un
Table Layout

:
qui nous permet d’arranger les
éléments gr
aphiques

sur des
différentes lignes
(
TableRow
)

et sur le même niveau
.



Un
TableRow

:
c’est un
élément

du
TableLayout
, chaque
TableRow

contient zéro ou
plusieurs

cellules
.



Des
widgets

:
deux
TextView

qui représentent des textes statiques
(
Taille et poids
)

et

trois autre
s

sans textes qui représentent le résultat du test, et deux
boutons

(
calcul qui
lance l’exécution de l’Activité, et Menu qui nous permet de retourner au menu principal
).



EditText

:
qui permet à l’utilisateur d’entrer sa taille et son poids
.

Et
voici
l’
imc
.
xml

qui sera créé automatiquement à partir du GUI

:

EditText

Trois TextView sans
text pour afficher le
resultat du t
e
st
.

Deux boutons
.

Palette

TextView


20

2.

Activity

:

Lors de la création du projet, Eclipse
donne la possibilité de
crée
r

une classe java qui étend la
classe
Activity

et qui explique le comportement de l’
application lors de son exécution
.

<?
xml

version
=
"
1
.
0
"

encoding
=
"
utf
-
8
"
?>

<
TableLayout



android
:
id
=
"
@
+
id
/
TableLayout01
"



android
:
layout_width
=
"
fill_parent
"



android
:
layout_h
eight
=
"
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
=
"
@
+
i
d
/
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
"
>


<
TextV
iew

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
"

and
roid
:
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
"

androi
d
:
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
=
"
0d
p
"

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

and
roid
:
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
>


21
Normalement, pour chaque application dans notre projet
FirstProject

il faut y avoir une
classe d’activité

; pour ce but créer sous le répertoire

src

et dans le paquetage
lb
.
isae
.
FirstProject

une classe java nommée
imc
.
jav
a

qui étend la classe
Activity

:

Cette classe doit contenir

:

a.

Une
méthode

onCreate

qui override la mé
thode
onCreate

dans la classe
Activity

:
Cette
méthode

récupère

tous les identifiants des
Widgets

définis dans
imc
.
xml

à l’aide de la méthode prédéfinie
se
tContentView
(R.layout.imc)

:

La
classe
R
.
java

généré automatiquement nous permettra très facilement de
récupérer des références Java sur ces
Widgets
.

Ensuite nous allons ajouter des
écouteurs

afin de capter les évènements
.
















Ici l’
écouteur

associé au bouton Menu
(
b1IMC
)

permet de fermer l’application et de retourner
vers le menu principal
.

b.

Une autre manière pour récupé
rer

les évènements c’est de créer l’écouteur dans
une méthode autre que la méthode

onCreate

puis d’associer cette méthode au

package

lb
.
isae
.
FirstProject;


import

lb
.
isae
.
FirstProject
.
R;

import

android
.
app
.
Activity;

import

android
.
os
.
Bundle;

import

android
.
view
.
View;

import

an
droid
.
widget
.
Button;

import

android
.
widget
.
EditText;

import

android
.
widget
.
TextView;

import

android
.
widget
.
Toast;


public

class

IMC
extends

Activity {



public

void

onCreate
(
Bundle savedInstanceState
)

{



super
.
onCreate
(
savedInstanceState
)
;



setContentVie
w
(
R
.
layout
.
imc
)
;






Button b1IMC
=
(
Button
)

findViewById
(
R
.
id
.
b1IMC
)
;



b1IMC
.
setOnClickListener
(
new

View
.
OnClickListener
()
{








@Override




public

void

onClick
(
View v
)

{









finish
()
;














}



}
)
;





}

. . . . . . . . .

La
methode

onCre
ate

Récupération

des
identifiants
.

Un écouteur


22
bouton convenable à travers le
GUI
, comme nous avons fait avec le bouton
calcul

:











Comment associer le bouton Calcul avec la méthode

my
ClickHandler

?

Dans le
GUI

sélectionnez le bouton Calcul
-
>Right click
-
>
properties
-
>
onClick










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



. . . . . . . . . . . .


23


Une

petite fenêtre apparaît, remplissez comme suit

:


Puis appuyez sur
Ok
, maintenant à chaque fois qu’on appuie sur le bouton Calcul, l’évènement
définit dans
my
ClickHandler

sera déclenché
.

c.

Enfin, pour terminer la classe
IMC
.
java

nous ajoutons les méthodes

appelées par
myClickHandler

qui effectuent le calcul de l’indice IMC et affiche le résultat à
l’écran
:


24
















3.

Le Manifest

:

Chaque activité créer doit être définit dans le
manifest

:
AndroidManifest
.
xml

:








public

String imcCalc
(
float

val1,
float

val2
)
{



String res
=
""
;



val1
=
val1
/
100;



val1
=*
val1;



float

imc
=
val2
/
val1;






res
=
"
Votre Imc
" =
+
imc;






TextView classf
=(
TextView
)
findViewById
(
R
.
id
.
classf
)
;



classf
.
setText
(
classification
(imc))
;



TextView pbs
=
(
TextView
)
findViewById
(
R
.
id
.
pbs
)
;



pbs
.
setText
(
pbs
(
imc
))
;



return

res;


}


public

String classification
(
float

imc
)
{



String res
=
"
Classification:

"
;



I
f
(
imc<18
.
5
)
res
=+
"
Poids Insuffisant
"
;



I
f
(
imc>
=
18
.
5 && imc<24
.
9
)

res
=+

"
Poids Normal
"
;



I
f
(
imc>
=
24
.
9 && imc<29
.
9
)

res
=+

"
Superpoids ou pré
-
obésité
"
;



I
f
(
imc>
=
29
.
9 && imc<34
.
9
)

res
=+

"
Obésité Classe1
(
modérée
)

"
;



I
f
(
imc>
=
34
.
9 && imc<39
.
9
)
res
=+

"
Obésité Classe2
(
sévère
)

"
;



I
f
(
imc>
=
39
.
9
)


res
=+

"
Obésité Classe3
(
massive
)

"
;



return

res;


}


public

String pbs
(
float

imc
)
{



String res
=

"
Pbs de santé

:

"
;



I
f
(
imc<18
.
5
)

res
=+

"
Accru
"
;



I
f
(
imc>
=
18
.
5 && imc<24
.
9
)
res
=+

"
Moindre
"
;



I
f
(
imc>
=
24
.
9 && imc<29
.
9
)

res
=+

"
Accru
"
;



I
f
(
imc>
=
29
.
9 && imc<34
.
9
)

res
=+

"
Modérée
"
;



I
f
(
imc>
=
34
.
9 && imc<39
.
9
)

res
=+

"
Elevé
"
;



I
f
(
imc>
=
39
.
9
)
res

"
=+
Très elevé
"
;



return

res;


}

}
//
end Class IMC
.
java


imcCalc calcule l’indice
IMC
=
poids
/
taille
2

Classification du
poids

Problèmes

de santé


25















4.

Autres ressources

:

Autre que le
layout

et au
-
dessous du répertoire

res


on a des répertoires
drawable

concernant les images
(
déjà expliqués au début de ce tutoriel
)
, et un répertoire
values

qui
nous aide à définir des diverses valeurs

:
comme des chaîne de caractères, des

couleurs de
fonds, des fonts
color
,…

.

Par e
xemple nous avons choisir la couleur bleu comme un couleur de fond de
imc
.
xml


pour
le faire

:

A.

Double cliquez sur
string
.
xml

pour l’ouvrir
.

B.

Cliquez sur
Add

puis choisir le type de données, on aura plusieurs dans

notre
cas choisissez
Color

puis appuyez sur
Ok
.


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


<
application

android:icon
=
"@drawable/icon"

android:label
=
"@string/app_name"
>


<
activity

android:name
=
".Menu"





android:theme
=
"@android:style/Theme.No
TitleBar"





android:screenOrientation
=
"portrait"



android:label
=
"@string/menu_name"


android:configChanges
=
"keyboardHidden|orientation"
>


<
intent
-
filter
>


<
action

android:name
=
"android
.intent.action.MAIN"

/>


<
category

android:name
=
"android.intent.category.LAUNCHER"

/>


</
intent
-
filter
>


</
activity
>




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



Première
activité à lancer
lors du
d
éclenchement
de l’application

Le nom de l’activité dan
s
le src

sans le
.
java

Les autres activités à déclarer ici
à l’
intérieur

du
tag<application><
/
application>


26

Remplissez les valeurs convenables comme suit

:


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


27

Une fenêtre apparaît, c
hoisissez la couleur
myColor


Générer le fichier
.
apk

Après la réalisation de notre application il est très intéressant de savoir générer le fichier vous
permettant d’installer cette dernière sur votre terminal Android, ce fichier est le
.
apk

Pour le fa
ire

:

1.

O
uvrez
file

puis sélectionnez
Export

2.

Sélectionnez
Android
-
>
Export Android Application
-
>
Next


28
3.

C
hoisissez le projet

:
dans notre cas c’est le
FirstProject
-
>Next
.

4.

Comme étant le premier projet on n’a pas un
keystore


alors il faut créer un nouvel et
l’u
tiliser pour les prochains projets
.

Un
keystore

s’agit d’une signature incorporée à votre application la protégeant ainsi de
tout individu mal intentionné
.


Cochez alors l’option
create

new
Keystore

et remplissez

:



Location

:
où sera stockée la clé de sign
ature



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 l’équipe



Password

:
pas

nécessairement comme le
keystore
.



Confir
m

:
retapez

le
password
.



Validity year

:

25 ans par exemple


29


First and Last Name

Appuyez sur
N
ext
, il vous demande de choisir une destination pour le fichier
.
apk

Choisissez une et cliquez sur finish

Enfin à l’aide d’un câble

USB transférez
FirstProject
.
a
pk

sur votre
sdcard
.