Vous êtes sur la page 1sur 36

Application de messagerie simple sur Android : Rapport de projet de VAP RSM

Projet encadr par : M. Hossam AFFIFI Elabor par : Khaoula MRABET & Nessrine TRABELSI Responsable de la VAP : M. Patrice AUBRY

AU : 2010/2011

Sommaire
Introduction ....................................................................................................................................................... 4 Chapitre 1: tat de l'art ..................................................................................................................................... 5 Introduction ................................................................................................................................................... 5 1. Description................................................................................................................................................. 5 2. Historique d'Android ................................................................................................................................. 5 3. Fonctionnalits d'Android ......................................................................................................................... 7 4. Architecture Android ................................................................................................................................. 8 4.1) Applications ........................................................................................................................................ 9 4.2) Framework de dveloppement .......................................................................................................... 9 4.3) Bibliothques.................................................................................................................................... 10 4.4) Android Runtime .............................................................................................................................. 12 4.5) Linux Kernel ...................................................................................................................................... 12 Conclusion ................................................................................................................................................. 13 Chapitre 2: Outils de ralisation d'un projet Android ..................................................................................... 14 Introduction ................................................................................................................................................. 14 1. Outils logiciels : Environnement technique ............................................................................................. 14 1.1) Installation dAndroid SDK sous Windows Dploiement .............................................................. 14 1 .1.1) Tlchargement des outils ...................................................................................................... 14 1 .1.2) Installation des outils .............................................................................................................. 14 1 .1.3) Tlchargement des diffrents composants dAndroid SDK ................................................. 14 1 .1.4) Paramtrage dEclipse et installation du plugin ADT ............................................................. 16 1.2) Installation des applications sur tlphone ..................................................................................... 17 1.2.1) Installation du pilote USB ......................................................................................................... 17 1.2.2) Paramtrage du tlphone ...................................................................................................... 18 2. Outil matriel........................................................................................................................................... 18 Conclusion ................................................................................................................................................... 18 Chapitre 3 : Cration d'un Projet Android ....................................................................................................... 19 2

Introduction ................................................................................................................................................. 19 1. Cration d'un AVD ................................................................................................................................... 19 2. Cration d'un projet Android .................................................................................................................. 20 2.1) Explication des paramtres du projet .............................................................................................. 21 2.2) Explication du code .......................................................................................................................... 22 3. Codage et excution de HelloAndroid..................................................................................................... 23 Conclusion ................................................................................................................................................... 24 Chapitre 4 : Application Android : Messagerie Instantane ........................................................................... 25 Introduction ................................................................................................................................................. 25 1. Principe du fonctionnement .................................................................................................................... 25 2. Etapes de la mise en marche de l'application ......................................................................................... 25 3. Fonctionnement dtaill de l'application................................................................................................ 28 3.1) Premire Version .............................................................................................................................. 29 3.2) Deuxime Version ............................................................................................................................ 34 4. Difficults rencontres ............................................................................................................................ 35 Conclusion ................................................................................................................................................... 35 Conclusion ....................................................................................................................................................... 36

Introduction
Le march de la tlphonie portable connat actuellement une vritable rvolution, mene par Apple et son iPhone. . Apple a su mettre en avant son produit en ajoutant au tlphone de nouvelles fonctionnalits et en crant de nouveaux besoins.

Le march des Smartphones connat donc un vritable essor dans lequel les acteurs habituels (Windows et Symbian) essaient de s'engouffrer. Google, ayant ralis le potentiel de ce march, a dcid de s'y introduire en rachetant une startup travaillant sur un systme d'exploitation ouvert pour terminal mobile : Android. Dans le cadre de notre projet de Voie d'Approfondissement Rseaux et Services Mobiles, nous tions menes explorer ce nouveau systme d'exploitation pour mobiles, Android, et de faire une application de messagerie simple. Ainsi, nous articulons notre rapport autour de quatre chapitres : Le premier chapitre consiste en une tude de l'tat de l'art d'Android. Le deuxime chapitre aura comme but de dfinir l'environnement de travail, hardware et software. La troisime partie portera sur la cration d'un projet Android simple, intitul HelloAndroid. Finalement, nous dcrirons dans le dernier chapitre le fonctionnement d'une application de messagerie instantane tout en mettant l'accent sur la nouvelle fonctionnalit implmente.

Chapitre 1: tat de l'art


Introduction
Nous prsenterons dans ce chapitre une description du systme d'exploitation Android, son historique, ses fonctionnalits et finalement son architecture.

1. Description
Android est un systme d'exploitation open-source pour smartphones, PDA et autres terminaux mobiles, conu par Android, une start-up rachete par Google en juillet 2005. Il existe d'autres types d'appareils possdant ce systme d'exploitation tels que les tlviseurs et les tablettes. Afin de promouvoir ce nouveau systme d'exploitation ouvert, Google a su fdrer autour de lui un consortium d'une trentaine d'entreprises : l'Open Handset Alliance (OHA) cre officiellement le 5 novembre 2007. Toutes ces entreprises interviennent, plus ou moins directement, dans le march de la tlphonie mobile. Le but de cette alliance est de mettre en place des normes ouvertes dans le domaine de la tlphonie mobile. Ce qui veut dire que les dveloppeurs d'application Android pourront accder aux fonctionnalits du cur de tlphone via une API trs fournie. Android aura comme principaux concurrents Apple avec l'iPhone, Microsoft et son Windows Mobile et Nokia avec Symbian mais galement des solutions libres telles que LIMO ou OpenMoko.

2. Historique d'Android

Figure : volution des versions dAndroid.

En juillet 2005, Google a acquis Android, Inc., une petite startup qui dveloppait des applications pour tlphones mobiles .C'est ce moment l que des rumeurs sur l'entre de Google dans le secteur du mobile ont commenc. Mais personne navait des donnes sres propos des marchs dans lesquels ils allaient se positionner.
5

Aprs ce rachat fait par Google, une quipe dirige par Andy Rubin, un ancien d'Android Inc, a commenc travailler sur un systme d'exploitation pour appareil mobile bas sur linux. Durant 2 ans, avant que l'OHA soit cre officiellement, un certain nombre de rumeurs ont circul au sujet de Google. Il a t dit que Google dveloppait des applications mobiles de son moteur de recherche, qu'elle dveloppait un nouveau tlphone mobile, etc. En 2007, le 5 novembre, l'OHA a t officiellement annonce, ainsi que son but: dvelopper des standards open sources pour appareil mobile. Le premier standard annonc a t Android, une plateforme pour appareils mobiles base sur un kernel linux 2.6. En octobre 2008, apparait la premire version d'Android qui n'avait pas reu de nom. Cette version s'est avre tre la du systme. La version 1.5 Cupcake corrigea le manque d'API et rendit le systme plus utilisable. Depuis, Android 1.6, 2.0 et 2.1 ont apport d'importantes amliorations respectivement sur les fonctionnalits et sur l'interface graphique du systme. Android 2.2 Froyo a fortement mis l'accent sur la synergie avec Internet. L'envoi d'applications et de liens instantans depuis un ordinateur est dsormais possible. Aussi, Google annonce-t-elle que le navigateur chrome intgr Android 2.2 est le navigateur mobile le plus rapide au monde grce l'intgration du moteur JavaScript V8. Android 3.0 Honeycomb est spcialement tudi pour les tablettes tactiles. Les premiers modles devraient tre annoncs au CES 2011. On y apprend quelques nouveauts comme la prise en charge de la vido-confrence via Gtalk, la nouvelle interface Gmail ou encore le lecteur de livre lectronique Google. La refonte graphique de linterface utilisateur est assez russie, plus dinformations devraient suivre dont surement des claircissements sur lintgration ou non de linterface de cette version dAndroid sur les futurs smartphones.

Android 4.0 devrait arriver trs vite (mi 2011) pour rajouter encore plus de fonctionnalits aux terminaux. Pour le dveloppement, ces nouvelles versions dAndroid devraient proposer de nouveaux composants permettant de raliser des applications avec une ergonomie plus adapte aux tablettes tactiles.

Android 3.0 et Android 4.0 devraient apporter plus doutils aux constructeurs leur permettant de proposer des tablettes tactiles, qui seront capables de rivaliser (surtout au niveau de lergonomie) avec Ipad.

3. Fonctionnalits d'Android
Android a t conu pour intgrer au mieux les applications existantes de Google comme le service de courrier Gmail, l'agenda Google Calendar ou encore la cartographie Google Maps. Voici quelques fonctionnalits proposes par Android classes par version : Android version 1.5 (Cupcake)

Enregistrement et lecture des vidos. Mise en ligne directe des vidos sur YouTube. Mise en ligne directe des photos Picasa. Prise en charge du Bluetooth A2DP. Dossiers dynamiques et widgets pour le home. Copier/coller tendu aux pages web. Nouvelle version du clavier virtuel.

Android version 1.6 (Donut)


Lapplication Galerie permet deffacer plusieurs photos la fois. Amlioration de lAndroid Market. Amlioration de la vitesse de la recherche vocale et intgration tendue plus dapplications natives. Prise en charge sur une seule application de la prise de photo et de lenregistrement vido. Possibilit de rechercher simultanment dans les favoris, les historiques, les contacts et sur Google depuis le home via le widget recherche.

Moteur Text-to-speech. Prise en charge de plusieurs rsolutions dcran.

Android version 2.0/2.1 (clair)

Interface utilisateur revue (lock screen et lanceur dapplication).


7

Fonds dcran anims. New browser interface avec prise en charge du HTML5. Prise en charge du protocole Microsoft Exchange. New contact lists. Prise en charge du Bluetooth 2.1. Amlioration du clavier virtuel. Prise en charge en natif du flash et du zoom numrique pour des appareils photos. Amlioration du ratio blanc/noir sur les fonds. Gestion multi-comptes Gmail et ajout de la synchronisation avec Facebook.

Android version 2.2


Augmentation de la performance et de la vitesse. Fonctionnalit de Hot spot Wifi. Partage de contact sur bluetooth. Mise jour automatique des applications.

4. Architecture Android
Le diagramme suivant illustre les composants principaux du systme dexploitation Android. Chaque section sera dcrite dans ce qui suit :

Android est bas sur un kernel linux 2.6.xx. Au-dessus de cette couche, on retrouve les librairies C/C++ utilises par un certain nombre de composants du systme Android. Au-dessus des librairies, on retrouve l'Android Runtime. Cette couche contient les librairies curs du Framework ainsi que la machine virtuelle excutant les applications. Au-dessus de la couche "Android Runtime" et des librairies curs, on retrouve le Framework permettant au dveloppeur de crer des applications. Enfin au-dessus du Framework, il y a les applications.

4.1) Applications
Android est fourni avec un ensemble dapplications dont un client email, une application SMS, un calendrier, un service de cartographie, un navigateur toutes crites en JAVA.

4.2) Framework de dveloppement


En fournissant une plateforme de dveloppement ouverte, Android offre aux dveloppeurs la possibilit de crer des applications extrmement riches et innovantes. Les dveloppeurs sont libres de profiter du matriel priphrique et informations sur la localisation daccs, excuter des services darrire-plan, dfinir des alarmes, ajouter des notifications la barre dtat, etc. Les dveloppeurs ont un accs complet au mme framework API utilis par les applications de base. Larchitecture dapplication est conue pour simplifier la rutilisation des composants; nimporte quelle application peut publier ses capacits et nimporte quelle autre application peut alors faire usage de ces capacits (soumis des contraintes de scurit appliques par le framework). Ce mme mcanisme permet aux composants dtre remplacs par lutilisateur. Toutes les applications sous-jacentes forment un ensemble de services et de systmes, y compris: Un jeu extensible de vues qui peuvent tre utilises pour construire une application. Des fournisseurs de contenu qui permettent aux applications daccder aux donnes dautres applications (telles que les Contacts), ou de partager leurs propres donnes Un gestionnaire de ressources.

Un gestionnaire de notification qui permet toutes les demandes dafficher des alertes personnalises dans la barre dtat.

Un gestionnaire dactivit qui gre le cycle de vie des applications et propose une navigation commune.

4.3) Bibliothques
Android dispose dun ensemble de librairies C / C++ utilises par les diffrents composants du systme Android. Elles sont offertes aux dveloppeurs travers le framework Android. En voici quelques unes: Systme de bibliothque C une mise en uvre drive de BSD de la bibliothque C standard du systme (libc), destins aux systmes embarqus bass sur Linux. Comme cela a t dit prcdemment, Android ne supporte pas la glibc, donc les ingnieurs d'Android ont dvelopp une librairie C (libc) nomm Bionic libc . Elle est optimise pour les appareils mobiles et a t dveloppe spcialement pour Android. Les ingnieurs d'Android ont dcid de dvelopper une libc propre la plateforme Android car ils avaient besoin d'une libc lgre (la libc sera charge dans chaque processus) et rapide (les appareils mobiles ne disposent pas de CPU puissant). La Bionic libc a t crit pour supporter les CPU ARM, bien que le support x86 soit prsent. Il n'y pas de support pour les autres architectures CPU telles que PowerPC ou MIPS. Nanmoins, pour le march des appareils mobiles, seulement l'architecture ARM est importante.

Cette libc est sous licence BSD. Elle reprend une grande partie du code des glibc issue d'OpenBSD, FreeBSD et NetBSD. Ces caractristiques importantes : Elle pse environ 200Ko, soit la moiti de la glibc L'implmentation des pthreads (POSIX thread) a t compltement rcrite pour supporter les threads de la machine virtuelle Dalvik. De ce fait, la Bionic libc ne supporte pas les threads POSIX Les exceptions C++ et les "wide char" ne sont pas supports Mdiathques base sur PacketVideo de OpenCore; les librairies permettant la lecture et lenregistrement audio et vido, ainsi que la gestion des fichiers image, y compris MPEG4, H. 264, MP3, AAC, AMR, JPG et PNG.
10

Le schma ci-dessous dcrit tous les lments de larchitecture de ces mdiathques:

Figure : architecture de ces mdiathques


Surface Manager gre laccs au sous-systme daffichage et de faon transparente. LibWebCore Le navigateur web prsent dans Android est bas sur le moteur de rendu sous licence BSD WebKit.

WebKit est moteur de rendu, qui fournit une "fondation" sur laquelle on peut dvelopper un navigateur web. Il a t originellement driv par Apple du moteur de rendu KHTML pour tre utilis par le navigateur web Safari et maintenant il est dvelopp par KDE project, Apple, Nokia, Google et d'autres. WebKit est compos de deux librairies : WebCore et JavascriptCore qui sont disponibles sous licence GPL. WebKit supporte le CSS, Javascript, DOM, AJAX. La dernire version a obtenu 100% au test Acid 3. La version de WebKit prsent dans Android t lgrement modifie pour s'adapter aux appareils mobiles. Ainsi, le moteur de rendu bas sur WebKit prsent dans Android supporte l'affichage sur une colonne.

SGL le moteur graphique 2D. Bibliothques 3D une implmentation base sur OpenGL ES 1.0 API; les bibliothques utilisent lacclration 3D matrielle (si disponible). FreeType bitmap et vectoriel de rendu de police.
11

SQLite un moteur de base de donnes relationnelles puissant et lger, disponible pour toutes les applications.

4.4) Android Runtime


Android inclut un ensemble de librairies de base offrant la plupart des fonctionnalits disponibles dans les bibliothques de base du langage de programmation Java. Chaque application Android sexcute dans son propre processus, avec sa propre instance de la machine virtuelle Dalvik. Dalvik a t crit pour que le dispositif puisse faire tourner plusieurs machines virtuelles de manire efficace. La machine virtuelle Dalvik excute des fichiers dans lexcutable Dalvik (. DEX), un format optimis pour ne pas encombrer la mmoire. La machine virtuelle est la base de registres et fonctionne grce aux classes compiles par un compilateur Java et transformes dans le format DEX. La machine virtuelle Dalvik sappuie sur le noyau Linux pour les fonctionnalits de base telles que le filetage et la gestion de la mmoire de bas niveau.

4.5) Linux Kernel


Android est bas sur un kernel linux 2.6 mais ce n'est pas linux. Il ne possde pas de systme de fentrage natif (X window system). La glibc n'tant pas supporte, Android utilise une libc customise appele Bionic libc. Enfin, Android utilise un kernel avec diffrents patches pour la gestion de l'alimentation, le partage mmoire, etc. permettant une meilleure gestion de ces caractristiques pour les appareils mobiles. Android n'est pas linux mais il est bas sur un kernel linux. Pourquoi sur un kernel linux ? Le kernel linux a un systme de gestion mmoire et de processus reconnu pour sa stabilit et ses performances. Le model de scurit utilis par linux, bas sur un systme de permission, est connu pour tre robuste et performant. Il na pas chang depuis les annes 70

Le kernel linux fournit un systme de driver permettant une abstraction avec le matriel. Il permet galement le partage de librairies entre diffrents processus, le chargement et le dchargement de modules chaud.
12

le kernel linux est entirement open source et il y a une communaut de dveloppeurs qui l'amliorrent et rajoutent des drivers.

C'est pour les points cits ci-dessus que l'quipe en charge du noyau a dcid d'utiliser un kernel linux.

Conclusion
Dans ce chapitre, nous avons fait une tude de l'art d'Android tout en prsentant un bref historique, les fonctionnalits que nous pouvons trouver sur ce systme d'exploitation et l'architecture d'Android, savoir les principaux composants du systme.

13

Chapitre 2: Outils de ralisation d'un projet Android

Introduction
Dans ce chapitre, nous prsenterons lenvironnement de travail qui inclut les outils de dveloppement (logiciels et technologies exploits) ainsi que loutil matriel.

1. Outils logiciels : Environnement technique


1.1) Installation dAndroid SDK sous Windows Dploiement
1 .1.1) Tlchargement des outils Nous avons commenc par le tlchargement des outils ncessaires : Android SDK : tlcharg depuis le site officiel Android SDK. Eclipse Version: 3.3.1.1 (Europa) ou 3.5 (Galileo). JDK 5 or JDK 6.

1 .1.2) Installation des outils


Nous avons install SDK 7. Nous avons d zipp le contenu du fichier Android SDK sous le chemin C:\android-sdk\. Nous avons d zipp la version Eclipse sous le chemin C:\eclipse\.

1 .1.3) Tlchargement des diffrents composants dAndroid SDK


Sous C:\android-sdk\ nous lanons SDK Setup.exe. Sous Available Packages , nous trouvons la liste des packages et Archives du Android SDK.

Nous choisissons les diffrents packages et nous validons.

14

Une fois ceci termin, nous nous retrouvons avec les diffrentes versions dAndroid installes sur le systme comme le montre la capture suivante :

Figure : Android SDK AVD Manager

Dans le menu Virtual Devices, nous cliquons sur le bouton new , ce qui nous permettra de crer notre toute premire machine virtuelle contenant lOS Android pour permettre le dveloppement dapplication mobile.

Une taille de 128 MB de donnes pour la SD Card (simulation de la carte SD) suffira amplement pour le dveloppement que nous aurons faire, une fois les champs complts, comme le montre la capture suivante, on clique sur Create AVD .

15

Figure : Cration d'une VM

1 .1.4) Paramtrage dEclipse et installation du plugin ADT Nous lanons Eclipse puis dans le menu Help >> Install new software , une fentre souvre alors et nous configurons les dpts Google Android pour avoir le plugin AVD intgr notre IDE. Nous cliquons sur le bouton Add en haut droite de la fentre. Nous renseignons les champs suivants : o Name : Android (ou autre). o Location : http://dl-ssl.google.com/android/eclipse/.

Figure : URL Plugin

16

Aprs rafraichissement, Eclipse affiche les plugins disponibles. Nous slectionnons le Android DDMS et le Android development Tools . Nous validons les tapes suivantes et nous redmarrons Eclipse. Maintenant que Eclipse reconnait les plugins, sous Window-> Preferences->Android nous indiquons le chemin d'Android SDK : C:\android-sdk\ dans notre cas :

Figure : liste des targets Nous voil avec une configuration dAndroid et dEclipse oprationnelle.

1.2) Installation des applications sur tlphone


1.2.1) Installation du pilote USB Pour pouvoir utiliser un vrai tlphone android depuis l'diteur de code clipse, nous avons besoin d'installer un driver USB, puisqu'en branchant l'USB, windows, par dfaut, ne connait pas le type de matriel. En gnral, le pilote installer se trouve dans le dossier du sdk install et plus exactement dans un dossier qui s'appelle google-usb-driver. Selon le processeur que nous avons sur le tlphone, nous choisissons le bon pilote. Si le pilote correspondant au tlphone n'existe pas dans le dossier indiqu, nous devrons le tlcharger depuis Internet.
17

Nous branchons le tlphone sur le port USB et l'assistant d'ajout de nouveau matriel dtect apparait. Nous spcifions alors le chemin du pilote et procdons son installation. Une fois l'installation du driver termine, nous pouvons alors commencer utiliser le tlphone depuis clipse. Dans clipse, nous ouvrons la perspective DDMS et dans l'onglet device gauche, nous pourrons voir tous les mulateurs existants ainsi que le tlphone branch. Nous pouvons ainsi utiliser le tlphone avec eclipse.

1.2.2) Paramtrage du tlphone Nous allons configurer le tlphone pour qu'il puisse accepter le dbogage et l'installation d'application de l'environnement de dveloppement. Les commandes excuter sont alors les suivantes: On clique sur menu puis on choisit paramtres (ou bien settings) On choisit applications On coche sources inconnues Cliquer sur OK quand le warning s'affiche (puisque c'est bien une application de confiance) Passer dans Dveloppement Activer Dbogage USB, Rester activ et Positions fictives

2. Outil matriel
La programmation a t effectue sur deux ordinateurs dots des capacits suivantes: - Marque : HP - Microprocesseur : Intel core 2 duo. - Mmoire vive 3 Go et 2 Go. - Disque dur 250 Go et 160 Go.

Conclusion
Nous avons prsent dans ce chapitre l'environnement software et hardware utilis pour la programmation Android.

18

Chapitre 3 : Cration d'un Projet Android

Introduction
Dans ce chapitre, nous allons dcrire les tapes de cration d'un simple projet Android, savoir HelloAndroid et nous expliquerons la manire de le tester sur un mulateur Android.

1. Cration d'un AVD


Afin de tester notre application, nous allons utiliser lmulateur Android. Il faudra donc crer un Android Virtual Device (AVD). Un AVD dcrit les paramtres systmes et les composants de notre mulateur. Pour crer un AVD: 1. Nous lanons Eclipse 2. Nous allons sous Window > Android SDK and AVD Manager 3. Nous slectionnons Virtual Device dans le panneau gauche 4. Nous cliquons sur New . La boite de dialogue Create New AVD apparatra 5. Nous tapons le nom de notre AVD, hello_avd par exemple 6. Nous choisissons la cible (the target). La cible est la version de la plateforme Android SDK que nous avons tlcharg. 7. Nous ignorons les autres champs pour le moment et nous cliquons sur Create AVD

Figure : liste des AVD cres.


19

2. Cration d'un projet Android


Aprs avoir cr un mulateur Android, nous passons la cration du projet sous Eclipse. Nous lanons Eclipse et nous allons sous File -> New->Project et nous slectionnons Android Project .

Figure : Cration dun nouveau projet ANDROID Nous renseignons les dtails propos de notre projet comme suit :
o o o o o

Project name: HelloAndroid. Build Target: Android 2.2. Application name: Hello, Android. Package name: com.android.projet. Create Activity: HelloAndroid.

20

Figure : Paramtres du projet HelloAndroid

Nous cliquons sur Finish.

2.1) Explication des paramtres du projet

Project name : Cest le nom du projet Eclipse. Tous les fichiers seront crs sous un dossier portant le mme nom. Application Name : Cest le nom de lapplication tel quil va apparatre sur le smartphone Android. Package Name : Cest le package namespace (suivant les mmes rgles de programmation Java) qui regroupera tout le code source qu'on va crire. Dune manire gnrale, le nom du package doit tre unique. Dans notre exemple, on a utilis com.android.projet.

Create Activity : Cest le nom du stub class qui va tre gnre par le plugin. Elle va tre une sous-classe de la classe Activity dAndroid.

21

2.2) Explication du code


Notre projet est maintenant prt. Examinons le code en navigant dans le Package Explorer gauche. Nous ouvrons le fichier HelloAndroid.java situ sous HelloAndroid->src-

>com.android.projet qui devra ressembler a :


package com.android.projet;

import android.app.Activity; import android.os.Bundle;

public class HelloAndroid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }

Nous notons que cette classe est base sur la classe Activity que nous avons mentionne tout lheure. Une Activity est une entit de lapplication permettant dexcuter des actions. Une application peut avoir plusieurs Activities, mais lutilisateur interagit avec elles une une. La mthode onCreate() sera appele par le systme Android lors du dmarrage de lapplication. Cest donc lendroit idal pour faire toutes les initialisations et prparer linterface utilisateur. Cependant, il nest pas obligatoire davoir une interface utilisateur pour chaque Activity.

22

3. Codage et excution de HelloAndroid


Modifions le code comme suit :
package com.android.projet;

import android.app.Activity; import android.os.Bundle; import android.widget.TextView;

public class HelloAndroid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(this); tv.setText("Hello, Android"); setContentView(tv); } }

Une Interface Utilisateur Android est compose dune hirarchie dobjets appels Views (Vues). Une View est un objet dessiner, utilis comme un lment de linterface utilisateur. Cela peut tre un bouton, une image ou tout simplement du texte comme dans notre cas. Chacun de ces objets est une sous-classe de la classe View. Et la sous-classe qui prend en charge le texte est TextView. Nous venons de crer un TextView avec le constructeur de classe qui prend comme paramtre une instance Context Android. Un Context fournit des services comme laccs aux ressources, lobtention dun accs la base de donnes, etc La classe Activity hrite du Context et comme

23

la classe HelloAndroid est une sous classe Activity, elle est donc un Context. Cest pourquoi nous pouvons passer un this comme rfrence au TextView. Nous avons dfini aprs le contenu texte avec setText(). Finalement, nous avons pass le TextView setContentView() pour lafficher comme un contenu de linterface utilisateur de lActivity. Bien entendu, si nous ne faisons pas appel cette mthode, le systme affichera un cran vide. Cest tout. Excutons notre application maintenant. Le plugin Eclipse facilite lexcution de nos applications:

Nous slectionnons Run -> Run. Nous slectionnons Android Application .

Le plugin cre automatiquement une configuration dexcution pour notre application et lance lmulateur Android. Ca risque dtre vraiment lent. Aprs le dmarrage du systme, le plugin installe la nouvelle application et excute notre Activity par dfaut. Et voici le rsultat:

Figure : Rsultat de lexcution de l'application

Conclusion
Aprs avoir prsent les tapes de cration du projet HelloAndroid, nous passerons dans la suite l'explication d'une application de messagerie simple.

24

Chapitre 4 : Application Android : Messagerie Instantane

Introduction
Dans ce chapitre, nous dcrirons le fonctionnement d'une application de messagerie instantane que nous avons prise du site http://code.google.com/p/simple-android-instant-messaging-application/ , expliquerons en dtails les tapes de sa mise en marche et dcrirons la fonctionnalit que nous avons ajoute l'application.

1. Principe du fonctionnement
Il s'agit d'une simple application de messagerie instantane fonctionnant sur Android. Cette application permet lenregistrement dun utilisateur et assure son authentification. La recherche dun nouvel ami peut tre effectue par le biais du nom dutilisateur. On peut soit accepter soit refuser les invitations des autres usagers. Cette application permet galement chaque utilisateur dchanger des messages instantans avec les amis qui apparaissent dans la liste. Elle lance aussi un service d'arrire-plan afin de faire passer des messages mme lorsque l'application est ferme. Une zone de notification dutilisation saffiche lors de la rception dun nouveau message.

2. Etapes de la mise en marche de l'application


Tlchargement et installation de WampServer Copier tous les fichiers existant sous le dossier Server vers un dossier dans le rpertoire du serveur web (C:\wamp\www), ce dossier sera nomm par exemple android_im. Nous pouvons accder ce dossier par http://192.168.7.5/android_im/ (192.168.7.5 l'adresse IP de l'ordinateur qui excute Wampserver et Mysql ). Ouvrir le fichier index.php et entrer les paramtres de connectivit de base de donnes telles que le host, le nom d'utilisateur, le mot de passe et le nom de la base de donne. Ecrire error_reporting (0) en haut de lindice.Php Le dbut du fichier index.php devient comme suit : est

25

error_reporting(0); require_once("mysql.class.php"); $dbHost = "localhost"; $dbUsername ="android-im_user"; $dbPassword = "root"; $dbName = "android-im";

Crer la base de donnes android_im : Crer une nouvelle base " android_im " dans laquelle nous travaillerons dans toute la suite en utilisant le formulaire dans la page http://localhost/phpmyadmin.

Figure : Cration de la base de donnes.

26

Crer les tables de base de donnes mysql laide du script mysql suivant :
CREATE TABLE `friends` ( `Id` int(10) unsigned NOT NULL auto_increment, `providerId` int(10) unsigned NOT NULL default '0', `requestId` int(10) unsigned NOT NULL default '0', `status` binary(1) NOT NULL default '0', PRIMARY KEY (`Id`), UNIQUE KEY `Index_3` (`providerId`,`requestId`), KEY `Index_2` (`providerId`,`requestId`,`status`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='providerId is the Id of the users who wish to be friend with'; CREATE TABLE `users` ( `Id` int(10) unsigned NOT NULL auto_increment, `username` varchar(45) NOT NULL default '', `password` varchar(32) NOT NULL default '', `email` varchar(45) NOT NULL default '', `date` datetime NOT NULL default '0000-00-00 00:00:00', `status` tinyint(3) unsigned NOT NULL default '0', `authenticationTime` datetime NOT NULL default '0000-00-00 00:00:00', `userKey` varchar(32) NOT NULL default '', `IP` varchar(45) NOT NULL default '', `port` int(10) unsigned NOT NULL default '0', PRIMARY KEY (`Id`), UNIQUE KEY `Index_2` (`username`), KEY `Index_3` (`authenticationTime`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Cette tape est effectue en crivant le script ci-dessus dans la zone appropri et qui est montre dans la figure suivante et puis en cliquant sur excuter :

Figure : Cration des tables.

27

La figure ci-dessous montre les tables friends et users cres :

Figure : tables users et friends crs.

3. Fonctionnement dtaill de l'application


Nous prsenterons en premier lieu l'application en sa premire version telle qu'elle existe sur Internet puis dans un second lieu nous dcrirons la nouvelle fonctionnalit ajoute.

28

3.1) Premire Version


La premire tape consiste s'enregistrer. A travers une premire vue de l'application, l'utilisateur est amen entrer un login, un mot de passe (deux fois) et une adresse mail. Par exemple dans notre cas, le login sera "nessrine", le mot de passe "nessrine" et l'adresse mail nessrine@nessrine.com. Notons que l'application affichera des messages d'erreur dans les cas suivants: Le login ou le mot de passe sont trs courts (moins de cinq caractres). Le mot de passe n'est pas le mme dans les deux emplacements adquats. Le login existe dj dans la base de donnes contenant tous les utilisateurs enregistrs.

Figure : Sign Up

Une fois nous appuyions sur "Sign up", et si tout fonctionne normalement, une nouvelle ligne dans la table "users" apparait contenant certaines informations de l'utilisateur. L'utilisateur tape aprs son login et mot de passe pour accder l'application.

29

Figure : Login En cliquant sur "Login", une requte est envoye au serveur pour vrifier les donnes entres par l'utilisateur. Dans le cas idal, l'utilisateur est authentifi et une mise jour du temps d'authentification est faite dans la base de donnes. Aussi, l'application cherche-t-elle les informations des amis de "nessrine", dans notre cas, pour les afficher dans la vue suivante.

Figure : Liste des amis (1) Nous lanons l'application sur un autre mulateur android et entrons les informations de khaoula L'icne indiquant son statut changera en vert.
30

Figure : Liste des amis (2) Pour pouvoir communiquer entre les deux mulateurs, nous devons faire un port-forwarding. Le port correspondant chaque utilisateur est indiqu dans la table "users" dans la base de donnes "android_im". Ouvrons un excuteur de commandes et tapons cmd. Par la suite, nous devons accder au dossier plateforme-tools contenu dans la sdk. Puis nous tapons ces deux lignes de commandes :
adb -s emulator-5554 forward tcp:19179 tcp:19179 adb -s emulator-5556 forward tcp:25777 tcp:25777

Ainsi, les deux amies peuvent s'envoyer des messages instantans.

Figure : Envoi de messages

31

Une fonctionnalit essentielle dans l'application est l'envoi d'invitation d'amiti. La recherche d'amis s'effectue en entrant son login. Quand un utilisateur reoit une notification de demande d'ajout, il a la possibilit d'accepter ou de refuser.

Figure : Envoi demande d'ajout d'amis

Figure : Rception demande d'ajout d'amis

32

Figure : Accepter/refuser les amis

Mme en sortant de l'application, elle ne ferme pas et tourne en arrire plan. Dans le cas de rception d'un message, une notification apparait en haut de l'cran.

Figure : Application en arrire plan

33

3.2) Deuxime Version


L'application dans sa premire version classait les amis selon le critre de disponibilit, donc un utilisateur est soit en ligne, soit hors ligne. Nous sommes partis de cette constatation pour ajouter une nouvelle fonctionnalit permettant l'utilisateur de choisir son statut, savoir : en ligne, absent ou bien occup. Dans la vue listant les amis connects ou pas, en cliquant sur menu, nous voyons apparaitre un item "set status".

Figure : Set Status

En cliquant sur cet item, un sous menu contenant trois items apparait. L'utilisateur a donc la possibilit de choisir son statut.

Figure : Choix du statut

34

Par exemple, choisissons "busy". L'icne deviendra alors rouge, indiquant tous ses amis qu'il est dsormais occup.

Figure : Statut Occup

4. Difficults rencontres
Au cours de la ralisation de ce projet nous avons rencontr plusieurs difficults lies lmulateur dclipse pour Android. Parmi ces difficults, on peut citer le fait quil ne supporte pas le Bluetooth, ni le wifi ce qui nous a oblig tester nos codes dapplication sur des tlphones Android rels. Lors de linstallation de lapplication de la messagerie instantane sur le tlphone, lapplication na pas fonctionn correctement parce qu'elle utilise les librairies de la version 1.5 et le tlphone utilise celle de la version 2.2. Vu cette incompatibilit lapplication na pas pu sexcuter de manire normale et montrer le rsultat quon a eu sur lmulateur.

Conclusion
Dans ce chapitre, nous avons dcrit le fonctionnement de l'application de messagerie instantane et mis l'accent sur la fonctionnalit ajoute.

35

Conclusion

Ces dernires annes, la tlphonie mobile a t sans doute le secteur le plus dynamique, le plus rentable et le plus innovant de toute lIndustrie des Tlcommunications. Le march des Smartphones, essentiellement, connat un vritable essor dans lequel les acteurs habituels essaient de s'engouffrer. Google, ayant ralis le potentiel de ce march, a dcid de s'y introduire en sortant un nouveau systme d'exploitation Android. Dans le cadre de notre projet de Voie d'Approfondissement Rseaux et Services Mobiles, nous tions menes explorer ce nouveau systme d'exploitation pour mobiles et faire une application de messagerie simple. Ce rapport est donc compos de quatre parties. Dans la premire, nous avons fait une tude de l'art d'Android. Puis nous avons prsent l'environnement technique du travail. Le troisime chapitre a port sur la cration d'un simple projet Android, HelloAndroid. Finalement, nous avons dcrit l'application de messagerie simple et mis l'accent sur la fonctionnalit ajoute.

36