Академический Документы
Профессиональный Документы
Культура Документы
Encadr par :
- Ramilijaona Andrianaina
- Philippe Lacomme
- Fatnassi Sofiane
Responsable INRA :
- Rajerison Andry
- Sylvie Rousset
Remerciements
Nous tenons tout d'abord remercier M. Philippe Lacomme, notre tuteur de stage, de
nous avoir propos ce sujet, de nous avoir aid et encadr tout au long du projet.
Nous remercions aussi le directeur technique et tout le personnel de l'INRA ayant
assist la prsentation du projet, de nous avoir encourags pour ce projet
Nous remercions particulirement chaque tudiant du groupe, d'avoir particip et
contribu atteindre notre objectif
RESUME
Nous avons effectu notre projet de fin d'tudes de la 3me anne de licence sous
l'encadrement de M. Philippe Lacomme. Ce travail a t ralis en liaison avec Sylvie Rousset
Ingnieur de Recherche INRA.
Le projet a pour but de nous initialiser la plateforme de dveloppement mobile sous
Android et de tirer profit des gadgets que possdent les Smartphones de nos jours. Les principaux
gadgets qui nous seraient utiles pour laborer ce projet sont les capteurs sensoriels et le GPS. Etant
donne l'mergence de technologie mobile, beaucoup d'applications ont t dveloppes dans
divers domaines. Cependant nous avons pens comment utiliser ces gadgets pour aider chaque
individu suivre ses efforts physiques grce son Smartphone.
La premire tape a t l'tude pralable du logiciel, c'est dire dfinir le contexte et le choix
des outils utiliser pour le dveloppement. Etablir les fonctionnalits de base ainsi que les
diagrammes ncessaires la conception du logiciel.
Dans un second temps, nous avons choisi un IDE de dveloppement permettant
d'implmenter le logiciel, sachant que celui-ci s'crit sous le langage JAVA. Entre NetBeans et Eclipse,
nous avons choisi NetBeans pour mieux le maitriser.
Dans la dernire partie, nous avons cr un site web puis nous lavons hberger
temporairement sur le serveur web de l'ISIMA. Compte tenu de la faible capacit de la batterie des
Smartphones fournir l'nergie ncessaire une utilisation intensive des capteurs et du GPS, le site
permettra d'allger et de diminuer la consommation nergtique du tlphone en dlguant tous les
gros calculs sur celui-ci.
Enfin, il faut noter que comme tous les projets, celui-ci est destin voluer au fil du temps.
INTRODUCTION
Dans le cadre de notre prparation au diplme de Licence L3 parcours Informatique, nous
avons t amens effectuer notre projet sous l'encadrement de M. Philippe Lacomme.
Il s'agissait au cours du projet d'tudier et de dvelopper une application mobile sous
Android. Avec l'avance et l'mergence des technologies mobiles, les dveloppements embarqus
sont de plus en plus demands sur le march. Avoir un Smartphone est devenu incontournable pour
les jeunes de nos jours. D'o nait l'ide de dvelopper une application utile, installer sur les
Smartphones permettant de suivre sa dpense nergtique tout en gardant son tlphone dans sa
poche ou accroch sa ceinture, puis d'tre en contact avec ses ami(es) et savoir o ils se trouvent
grce la Google map intgr au logiciel lui mme.
Mis part le dveloppement proprement dit de l'application, la premire tape consistait
nous familiariser avec l'environnement Android, puis de choisir les outils conviviaux et envisageables
l'aboutissement du projet. Par la suite, nous entamerons la modlisation et le dveloppement de
l'application.
Ensuite, crer un serveur web pour pouvoir stocker les donnes dans une base de donne est
facile d'accs grce un site web que nous avons dvelopp par la suite. Les gros calculs seront
implmenter sur le serveur web afin d'liminer ou de diminuer les contraintes matrielles limitant
notre application sur les Smartphones.
Ce rapport peut ainsi tre subdivis en quatre parties. La premire consistera la
prsentation du projet, des objectifs principaux puis les fonctionnalits de base. La seconde partie
sera consacre au dveloppement proprement dit de l'application. La troisime partie propose une
bauche d'un site web qui servira d'interface entre le serveur web et l'application elle-mme et
implmentant toutes les fonctionnalits ncessaires la communication entre elles. Enfin, la
quatrime et dernire partie sera rserve prsenter l'application avec les fonctionnalits de base
et une notice permettant de comprendre comment utiliser le logiciel.
PRESENTATION DU PROJET
Contexte
Les Smartphones de nos jours sont quips de plusieurs capteurs capables de mesurer
l'acclration, l'altitude ou mme de localiser la position du tlphone avec prcision. Ces derniers
peuvent ainsi tre utiliss des fins mdicales.
Interaction client/mdecin
Comme on peut le constater dans la figure ci-dessus, linteraction entre lindividu et son mdecin se
rsume en trois tapes :
Pour commencer la personne utilisant le smartphone doit au pralable crer un compte utilisateur
sur le site web, qui permet de classer les individus et les diffrencier.
En second lieu, le client ayant un compte valid par un administrateur pourra se connecter et
disposer des diffrentes fonctionnalits de lapplication Android. Il pourra alors pendant son activit
sportive, transmettre les donnes au sein du systme.
Pour terminer, les donnes transferes par lutilisateur via le telephone Android seront rcupres
par son mdecin personnel qui pourra traiter ces dernires.
Objectif du projet
Le travail qui nous a t demand a t de dvelopper une application mobile sous Android,
permettant de mesurer la dpense nergtique d'une personne grce un Smartphone. La principale
fonctionnalit tant de mesurer la dpense nergtique pendant une marche, une course pied ou
vlo. Au terme de ce projet, l'application devra tre en mesure de deviner automatiquement
l'activit de l'utilisateur.
Contrainte
Nous sommes limits l'autonomie de la batterie et de la taille de la mmoire du tlphone.
Pour pouvoir communiquer avec le serveur web et s'changer des donnes, le tlphone doit tre
connect Internet (abonnement chez un fournisseur).
Par rapport au tlphone, le serveur prsente un grand avantage du point de vue mmoire
qu'autonomie. Pour l'instant, le serveur web est hberg temporairement sur le serveur de l'ISIMA.
La difficult surviendrait lorsque le site web changera de serveur. C'est dire trouver un moyen de
changer automatiquement la nouvelle adresse sur chaque application sans l'intervention de
l'utilisateur et sans recompiler l'application.
DEVELOPPEMENT MOBILE
Prsentation (environnement de dveloppement)
Les technologies mobiles prennent de plus en plus de place sur le march. Les Smartphones
sont considrs comme des petits ordinateurs et dots d'un systme d'exploitation s'appuyant sur
un noyau Linux. Cependant, ils diffrent des ordinateurs classiques par le cycle de vie d'une
application. Sous Android, une application est compose d'une ou plusieurs activits. Une activit est
la base d'un composant pour la cration d'interfaces utilisateur. Afin de facilit la cinmatique de
l'application, il est prconis de n'avoir qu'une interface visuelle par activit.
l'interface utilisateur, par exemple la mise en pause d'une animation puisque l'activit n'est plus
visible.
- Une fois l'appel tlphonique termin, le systme rveille l'activit prcdemment mise en pause
(appel de onRestart, onStart).
- L'activit reste trop longtemps en pause, le systme a besoin de mmoire, il dtruit l'activit (appel
de onDestroy).
- onPause et onResume rajoutent un tat l'activit, puisqu'ils interviennent dans le cas d'activits
partiellement visibles, mais qui n'ont pas le focus. La mthode onPause implique galement que la
vie de cette application n'est plus une priorit pour le systme. Donc si celui-ci a besoin de mmoire,
l'Activity peut tre ferme. Ainsi, il est prfrable, lorsque l'on utilise cette mthode, de sauvegarder
l'tat de l'activit dans le cas o l'utilisateur souhaiterait y revenir avec la touche Accueil.
Android se base sur un noyau Linux 2.6. Le SDK Android possde une bibliothque de librairie
de plusieurs classes java de base pour plusieurs types d'application (exemple : OpenGL|ES pour la 3D,
SSL pour les protocoles de scurit, etc.). Une application Android se repose sur un Framework qui
facilite l'utilisation des classes de base et sert d'interface entre les "Librairies" et les applications.
10
Pour la suite du projet, nous utiliserons NetBeans comme cela a t demand, et pour mieux
comprendre le fonctionnement de l'interface graphique l'aide du code.
11
La figure (6) montre le lancement d'un mulateur Android sur le port : 5554 du localhost,
parmi 4 mulateurs.
Modlisation
Diagramme de cas d'utilisation
12
Diagramme de classe
13
Implmentation
Lenvironnement de dveloppement sous Android se fait sous JAVA. Nous avons deux choix
doutils pour le faire : NetBeans et Eclipse. Cependant, sur chacun de ces outils doit tre install le
plugin qui permettra de dvelopper des applications sous Android.
Pour s'excuter sur les appareils mobiles Android, le programme en java doit tre converti.
Dalvik est la machine virtuelle qui gre la plate-forme Java sur les appareils mobiles Android. Elle
permet d'excuter les applications qui ont t converties en un excutable compact Dalvik (.dex), un
format adapt aux systmes limits en termes de mmoire et de vitesse du processeur.
Dans tout le projet, nous utiliserons NetBeans car nous avons constat moins de bug.
Pour mieux structurer la logique application, nous lavons spar en modules. Une premire
classe , qui contient les classes suivantes :
-
En cas de coupure de la connexion Internet, les donnes sont crites dans un fichier texte. Grce la
classe iService , lapplication enverra les donnes ds que la connexion sera rtablie.
L'interface graphique
Nous vous invitons consulter un document sur la page personnel de M. Philippe Lacomme :
"HTTP://WWW.ISIMA.FR/~LACOMME/DEVPORTABLE/TUTORIAL_ANDROID.PDF".
14
Android utilise des fichiers ressources xml : "main.xml", pour gnrer une interface graphique (ou
view). Ce fichier est appel par le fichier principal "main.java" grce la commande
"setContentView(R.layout.main)". "R" est un fichier ressource de l'application contenant tous les
identifiants des widgets (rfrences vers les widgets). Il est gnr automatiquement par le SDK.
La figure ci-dessus nous montre comment gnrer une interface graphique en xml. Les
composants ou widgets sont dfinis par des balises et les attributs reprsentent les proprits. Pour
placer les widgets, Android dispose deux types de gestionnaire de disposition (ou layout) :
LinearLayout (dispose les widgets horizontalement ou verticalement comme ci-dessus) , TableLayout
(layout en forme de tableau).
"<TextView>" permet de crer un widget "label" . La proprit "android:text" rcupre et
affiche dans le widget, le contenu de la ressource "string" ayant le nom hello rfrenc par
"@string/hello". La proprit "android:id" permet de rajouter automatiquement dans le fichier "R",
l'identifiant du widget.
Gestion d'vnement
Le code de la figure ci-dessus permet d'crire "Hello World" dans la zone de texte "zoneText"
lors d'un clique sur le bouton "bouton". "onCreate" crer le view du fichier "main.xml" prcdent
lors de l'appel. Au bouton est assign un listener (couteur d'vnement clic) grce
15
Le code de la figure 12 nous montre comment rcuprer une instance du capteur de type
"TYPE_ACCELEROMETER" afin de rcuprer les valeurs (x,y,z) correspondant lorsque la mthode
"onSensorChanged" est appele (la valeur des capteurs change). L'vnement "event" contient alors
les valeurs de chaque coordonne sous forme d'un tableau.
16
Cette figure nous montre comment crer un service. On peut constater que lon utilise la
mthode intent , cette dernire est une description abstraite dune opration effectuer. Elle
permet le dialogue travers le systme partir des canaux qui lui sont ddis.
Par exemple : Quand le mobile reoit un appel, la plateforme lance un intent signalant larriv dun
appel.
Les "Intent" permettent d'envoyer des donnes dans toute l'application puis rcuprer par un
"BroadcastReceiver". Le "Timer "timer" permet de fixer une frquence priodique d'envoyer des
donnes en utilisant la mthode "scheduleAtFixedRate". Le service peut tre dmarrer (startService)
ou arrter (stopService).
17
Les packages utiliss sont les suivants avec leurs liens de tlchargement et leurs documentations
respectifs :
apache-mime4j-0.4.jar
commons-io-2.0.1.jar
httpclient-4.0-beta2.jar
httpcore-4.0-beta3.jar
httpmime-4.0-beta1.jar
- apache-mime4j-0.4.jar :
http://grepcode.com/snapshot/repo1.maven.org/maven2/org.apache.james/apache-mime4j/0.4
- commons-io-2.0.1.jar :
http://grepcode.com/snapshot/repo1.maven.org/maven2/commons-io/commons-io/2.0.1
- httpclient-4.0-beta2.jar :
http://grepcode.com/snapshot/repo1.maven.org/maven2/org.apache.httpcomponents/httpclient/4.
0-beta2
- httpcore-4.0-beta3.jar :
http://grepcode.com/snapshot/repo1.maven.org/maven2/org.apache.httpcomponents/httpcore/4.0
-beta3
- httpmime-4.0-beta1.jar :
http://grepcode.com/snapshot/repo1.maven.org/maven2/org.apache.httpcomponents/httpmime/4
.0-beta1
18
19
- "Identifiant ".$log_iconnect." inconnu !" si l'utilisateur n'est pas membre du site ($log_iconnect :
login de l'utilisateur).
Les chaines de caractres prcdemment cites sont utilises pour tester l'tat des utilisateurs qui se
connecte et utilise l'application. Remarquons que sans authentification, l'utilisateur ne pourra pas
accder l'application (l'application reste sur la page d'authentification).
La figure 16 montre comment envoyer un fichier sur le serveur. Les paramtres renseigner
de la fonction par ordre sont : le contexte (l'application parent), l'adresse url du site, le login - mot de
20
passe - code d'accs de l'utilisateur, l'action ou l'activit de l'utilisateur ("Marche, Course ou Vlo"),
le nom du fichier envoyer (fichier local sur le mobile) et le nom du paramtre $_FILES["..."] de la
page php qui recevra le fichier.
Prsentation de l'application
La figure ci-dessus correspond la vue densemble des diffrents onglets prsent dans notre
programme que nous avons nomm Android Sport.
21
Une fois connect, l'utilisateur peut accder chaque fonctionnalit de l'application grce
aux diffrents onglets ci-dessous :
22
23
mmoire. Par consquent, le programmeur doit donc sauvegarder des paramtres avant la
destruction de l'instance de l'application, pour pouvoir par la suite les recharger. Car c'est une
nouvelle instance de l'application qui sera lance aprs la reprise. Grce aux paramtres
sauvegards, nous avons l'impression que l'application tait juste rduite.
- Au niveau de la compatibilit de certain composant intgrer notre application.
DEVELOPPEMENT WEB
Prsentation
Le serveur Web est l'lment essentiel garantissant le stockage des informations de taille
importante, car le tlphone ne dispose pas assez de mmoire suffisante.
L'objectif du serveur Web dans ce projet est d'hberger une application permettant de
collecter les informations notamment de l'utilisateur et d'en assurer le traitement des donnes.
Lors de la premire utilisation, l'utilisateur doit se connecter sur le site Web afin d'enregistrer
ses informations qui seront stockes dans la base de donnes du serveur Web. Par la suite le login et
le mot de passe de son choix ainsi qu'un code gnr automatiquement lui permettra de se
connecter sur le serveur et utiliser l'application installe sur le tlphone. Une fois connect sur le
site, l'utilisateur pourra donc voir son profil ou le modifier par la suite en cas de besoin.
Une partie rseau sociale donne l'utilisateur de chercher des amis (es), comme sur
Facebook et twitter, et d'envoyer une demande d'amis (es) et de l'ajouter dans ces contacts.
L'utilisateur concern aura le choix d'accepter ou de refuser la demande en question.
Un compte administrateur permet un utilisateur privilgi, d'accepter ou de refuser une ou
plusieurs demandes de cration de compte afin d'assurer facilement la scurit ainsi que la gestion
de capacit.
24
Modlisation
Implmentation
- styles2.css : code css implmentant le design du site Web
- entete.inc : fichier d'inclusion de l'entte de la page web
- pied_page.inc : fichier d'inclusion du pied de page
- index.php : page d'accueil du site web
- inscript.php : inclus le formulaire d'inscription de la page d'inscription
- valid_inscr.php: script qui vrifie si le champ a bien t rempli si oui, enregistrement des
informations de l'utilisateur dans la base de donnes.
25
- login.php : script vrifiant si le login et le mot de passe entr par l'utilisateur sont corrects. S'ils sont
corrects, on accde l'espace membre en appelant le script '' membre.php ''.
- membre.php: script de l'espace membre incluant:
1. Vrification s'il y a une demande d'ami
2. Affichage du profil utilisateur
3. Modification du profil utilisateur
4. Gestion Ami
- ami.php : gre la recherche de personnes membres et possibilit de demande d'ajout la liste
d'ami, inclus aussi l'acceptation ou le refus d'amis.
Prsentation lINRA
Durant notre projet nous avons eu loccasion de prsenter notre travail lors dune runion lINRA
(CHU) en prsence des personnalits suivantes :
J.M.Chardigny : Directeur de Recherche INRA et Directeur de l'Unit de Nutrition Humaine
(UNH).
B.Morio : Directrice de Rechercheur INRA, responsable de l'quipe Contrle de
l'homostasie lipido-nergtique et obsit (CHLEO).
P.Dusch : Vice prsidente de l'Universit Blaise Pascal.
P.Lacomme : Maitre de confrence LIMOS/ISIMA.
M.Duclos : Professeur et chef de service de la Mdecine du Sport et des Explorations
Fonctionnelles au CHU de Clermont.
S.Rousset : Ingnieur de recherche INRA au sein de l'quipe CHLEO, en charge de la
modlisation de la dpense nergtique.
La prsentation de notre travail lors de cette runion faisait partie de notre projet, tenant compte
que ce dernier est en liaison entre lISIMA et lINRA(CHU).
26
27
CONCLUSION
Au bout de notre cursus en licence informatique, nous avons t chargs de raliser un
projet de fin d'anne. Notre travail s'est bas sur le dveloppement d'un programme sur les
technologies mobiles (Smartphone). Ceci nous a amen dcouvrir une nouvelle plateforme de
dveloppement et enrichir notre savoir et notre exprience.
L'application que nous avons ralis permet d'hors et dj un utilisateur d'enregistrer au
pralable de s'authentifier et ainsi il lui est permis d'accder aux diffrentes fonctionnalits de
l'application. En outre, la sauvegarde de ses paramtres d'accs, le transfert des donnes vers le
serveur lors d'une quelconque activit. Mais encore, l'utilisateur peut connaitre la position GPS de
ses amis pour d'ventuelles activits sportives collectives.
28
ANNEXE
Processus de compilation d'un code Android
29
Rfrences et bibliographies
http://fr.wikipedia.org/wiki/Machine_virtuelle_Dalvik
http://developper.android.com
Android A PROGRAMMERS Guide [Jerome (J.F) DiMarzio] Mc Graw Hill
The Busy Coders Guide to Android Develoment [Mark L.Murphy] COMMONSWARE
Developper avec les API Google Maps Applications web, Iphone/Ipad et Android [Fabien Goblet
_Michel Dirix_Loic Goblet_Jean-Philippe Moreux]
30