Vous êtes sur la page 1sur 5
Objectif(s) Reseaux´ mobiles Travaux Pratiques TP n o 1 ✭ Introduction a` la programmation Android

Objectif(s)

Reseaux´

mobiles

Travaux Pratiques

TP n o 1

Introduction a` la programmation Android

D´efinir une activit´e

Utiliser des ´elements de pr´esentation graphiques

R´eagir a` un clic

1 Exercices corriges´ (2h30)

Exercice 1 – Configuration (30 min)

1. Votre t´el´ephone ?

Universit´e Pierre et Marie Curie

2012-2013

(a)

Quel syst`eme de r´eseau mobile est install´e sur votre t´el´ephone (GSM, ???)

(b)

Pour les smartphones, quel OS est install´e sur votre t´el´ephone ?

(c)

Pour les android, quelle version est disponible sur votre t´el´ephone ?

2. T´el´echarger la derni`ere version d’Eclipse

(a)

Aller a` l’adresse suivante pour t´el´echarger Eclipse Classic

Remarque : pour savoir si votre OS est en 32 ou 64 bits, tapez uname -a. Si ¸ac se termine par amd64 c’est en

64 bits, par 486 ou 686 en 32 bits.

(b)

D´ecompresser le fichier t´el´echarg´e : tar xzf eclipse-java-juno-SR1-linux-gtk-x86 64.tar.gz.

(c)

Lancer la commande eclipse contenu dans le dossier d´ecompress´e.

3. Configurer le proxy d’Eclipse (seulement sur le reseau´

de polytech)

(a)

Lancez Eclipse et cliquez sur Preferences du Menu d´eroulant Window.

 

(b)

Dans General->Network

Connections, v´erifiez que Active

Provider est sur Manual et ´editez les

Proxy Entries HTTP et HTTPS avec les caract´eristiques suivantes :

Host

proxyweb.upmc.fr

Port

3128

4. Installer le SDK Android

(a)

Cliquez sur Install New Software du menu d´eroulant Help.

(b)

Cliquez sur le bouton Add en haut a` droite.

(c)

Ins´erez les caract´eristiques suivantes :

Reseaux mobiles - 2012/2013 - TP n o 1

Exercice 2 – Hello World (30 min)

En suivant le tutorial de http://developer.android.com/training/basics/firstapp/creating-project.html, cr´eer votre premi`ere application qui affiche simplement un message de bienvenue ”Hello World” et ex´ecutez-la dans un ´emulateur (ou sur votre dispositif mobile).

Entrez le nom que vous d´esirez dans la case ApplicationName

S´electionnez Android 2.2 pour le Build SDK et le Minimum required SDK

Le reste est a` configurer a` votre convenance.

Le demarrage´

d’un emulateur´

peut-etreˆ

long, faites preuve de patience et ne refermez pas l’emulateur´

suffit de redemarrer´

l’application via Eclipse pour qu’elle se recharge dans l’emulateur.´

1. A quoi sert le fichier AndroidManifest.xml ?

: il

2. Quelle est la classe java principale de votre application et de quelle classe h´erite-t-elle ? Trouvez sur le site de http://developer.android.com/ la documentation de cette classe m`ere. Quelles est la m´ethode principale a` impl´ementer ?

3. Dans quel fichier est d´ecrit l’apparence graphique de votre activit´e principale et quel est sont type?

4. A quoi sert le fichier string.xml contenu dans le dossier values ?

Exercice 3 – My First App (30 min)

1. En suivant le tutorial de http://developer.android.com/training/basics/firstapp/building-ui.html, cr´eer l’application illustr´ee figure 1 :

cr´eer l’application illustr´ee figure 1 : Figure 1: My First App • Langue du clavier :

Figure 1: My First App

Langue du clavier : pour changer la langue de saisie, presser longuement le champ texte. Dans le menu qui apparait, choisissez Input Method puis Android Keyboard.

Debug : pour visualiser l’affichage de la m´ethode System.out.println, ouvrir la perspective DDMS (Window > Open Perspective > Other > DDMS et cliquer sur l’onglet LogCat.

2. On souhaite modifier l’application pour que le bouton Send r´eagisse au clic en affichant le message dans une fenˆetre popup appel´ee Toast (http://developer.android.com/guide/topics/ui/notifiers/toasts.html). Pour cela, il faut :

(a) Ajouter l’attribut onClick au bouton dans le fichier activity main.xml et lui associer le nom de la m´ethode qui sera appel´ee, par exemple displayMessage qui n’est pas encore d´efinie :

android:onClick="displayMessage"

(b) D´efinir la m´ethode displayMessage suivante dans la classe MainActivity et presser Ctrl+Shift+O pour importer les classes manquantes :

Reseaux mobiles - 2012/2013 - TP n o 1

/ **

*

* /

Called

when

the

user

clicks

the

send

button

public

void

displayMessage(View

view){

Context

context

 

=

getApplicationContext();

 

EditText

editText

=

(EditText)

findViewById(R.id.edit_message);

String

message

=

editText.getText().toString();

 

CharSequence

text

=

"Votre

message

message

CharSequence text = "Votre message est :\n" + message;

est

CharSequence text = "Votre message est :\n" + message;

:\n"

+

message;

int

duration

=

Toast.LENGTH_SHORT;

 

Toast

toast

=

Toast.makeText(context,

text,

duration);

toast.show();

 

}

3. Que fait la m´ethode findViewById et quel param`etre attend-elle ? A quoi correspond la classe java R.java contenue dans le dossier gen?

Exercice 4 – Personnalisation (30 min)

le dossier gen ? Exercice 4 – Personnalisation (30 min) Figure 2: Personnalisation de MyFirstApp )

Figure 2: Personnalisation de MyFirstApp

) sont d´efinies dans le fichier string.xml contenu

dans le dossier values et ensuite associ´ees aux ´el´ements graphiques dans le fichier activity main.xml. Remarque : pour afficher la liste des valeurs possibles avec Eclipse, positionner le curseur a` l’endroit d´esir´e et faites Ctrl+espace.

Les constantes (chaˆınes de caract`eres, couleur, dimension,

Modifier les ´el´ements suivants de votre premi`ere application pour obtenir le r´esultat de la figure 2:

Le message par d´efaut de EditText devient ”Entrez un message”

Les ´el´ements sont plac´es verticalement dans le layout.

Le message est positionn´e en haut de la vue (attribut android:gravity).

Pour associer une couleur avec un ´el´ement graphique, il faut d’abord d´efinir la couleur bleu (´el´ement color) dans string.xml et ensuite utiliser l’attribut android:background. Modifier le fond du layout (attribut android:background) pour qu’il soit bleu (#00FFFF).

Modifier la vue EditTest pour que le message soit plac´e en haut, avec une marge de 20px.

Pour d´efinir une marge, il faut d’abord cr´eer une dimension dans string.xml. Modifier la vue Button pour que le bouton ait une marge (top) de 20px.

Centrer le bouton (attribut android:layout gravity).

Reseaux mobiles - 2012/2013 - TP n o 1

Exercice 5 – Mise en pause et reprise d’application

1. Quels sont les ´etats possibles d’une application android ?

2. Quelles sont les m´ethodes principales d’une activit´e android ?

3. Reprendre l’application MyFirstApp et impl´ementer toutes les m´ethodes pr´ec´edentes en affichant simplement un message indiquant quelle m´ethode a ´et´e appel´ee a` l’aide d’un Toast.

(a)

D´emarrer votre application. Quelles sont les m´ethodes successivement appel´ees ?

(b)

Pour cacher votre application, cliquer sur l’icone de l’accueil. Quelles m´ethodes sont appel´ees ?

(c)

Est-il possible de d´etruire manuellement l’application ?

(d)

Modifier un peu votre application, par exemple en changeant les messages Toast des m´ethodes onXXX(). Que se passe-t-il si on d´emarre une nouvelle instance de votre application via Eclipse ?

2 Exercices a` rendre (1h30)

Exercice 6 – Envoi de SMS

? 2 Exercices a` rendre (1h30) Exercice 6 – Envoi de SMS Figure 3: Application android

Figure 3: Application android d’envoi de SMS

Nous allons d´evelopper une petite application d’envoi de SMS qui a l’apparence de la figure 3.

Reseaux mobiles - 2012/2013 - TP n o 1

1. Cr´eer un nouveau Projet intitul´e TP1 nom1 nom2, ou` nom1 et nom2 sont les noms du binome,ˆ

puis modifier le

fichier activity main.xml et string.xml pour cr´eer une activit´e ayant l’apparence de la figure 3.

2. Pour envoyer un SMS contenant le message message a` un num´ero numero, il suffit d’utiliser la classe SMS- Manager de la fac¸on suivante :

SmsManager.getDefault().sendTextMessage(numero, null, message, null, null);

Ajouter une m´ethode sendSMS qui r´eagit a` un clic sur le bouton Envoyer en envoyant le message par SMS au destinataire. La m´ethode v´erifiera que le num´ero contient au moins 4 chiffres et que le message n’est pas vide.

3. Pour tester votre application avec un ´emulateur, il vous d´efinir un deuxi`eme ´emulateur et d´emarrer l’application sur le 1er ´emulateur. Pour envoyer un message d’un ´emulateur a` un autre, il vous suffit de composer comme num´ero les 4 chiffres qui se trouvent sur la fenˆetre de l’´emulateur comme dans la figure 4.

sur la fenˆetre de l’´emulateur comme dans la figure 4. Figure 4: Application android d’envoi de

Figure 4: Application android d’envoi de SMS

4. Modifier votre application pour que l’utilisateur puisse entrer plusieurs num´eros s´epar´es par un point virgule (;). Le message devra ˆetre envoy´e a` tous les destinataires. Tester votre application en utilisant 3 ´emulateurs et un utilisateur qui envoi un message aux 2 autres. ATTENTION : votre clavier doit etreˆ en franc¸ais sinon vous risquez des problemes` d’encodage de certains caracteres.`

5. Les applications android sont packag´ee dans des archives .apk. Pour exporter un projet, clic droit sur le nom du projet et clic sur Android Tools -> Export Unsigned Application Package. Pour r´eellement publier un projet sur Play Store par exemple, il faudrait d’abord g´en´erer une cl´e (keystore), ce que nous ne ferons pas en TP.

Pour soumettre votre TP, dans le workspace d’eclipse, retrouver votre projet et compresser le dossier en .tar.gz. et envoyez-le par mail a` votre charg´e de TP, en pr´ecisant l’objet suivant : [ELI5-resmob] TP1 nom1 nom2