Conception Et Réalisation d’Un Thermomètre Numérique à Base Du PIC16F877A
CONCEPTION ET RÉALISATION D’UN
Transcript of CONCEPTION ET RÉALISATION D’UN
UNIVERSITE D'ANTANANARIVO ------------------------------
ECOLE SUPERIEURE
POLYTECHNIQUE
-------------------------------
MENTION ELECTRONIQUE
------------------------------- MEMOIRE EN VUE DE L’OBTENTION
DU DIPLOME DE LICENCE
Mention : ELECTRONIQUE
Parcours : INFORMATIQUE APPLIQUEE
PRESENTE PAR : ANDRIANTSALAMA Tina Herimino
Numéro d’ordre : Soutenu le : 02 Juin 2016
Année universitaire : 2014-2015
CONCEPTION ET RÉALISATION D’UN
SYSTEME DE GÉOLOCALISATION
ANDROID
MEMOIRE EN VUE DE L’OBTENTION DU DIPLOME DE LICENCE
MENTION : ELECTRONIQUE
PARCOURS : INFORMATIQUE APPLIQUEE
PRESENTE PAR : ANDRIANTSALAMA Tina Herimino
Devant les membres du Jury
Monsieur RAKOTOMIRAHO Soloniaina Président
Madame RAMANANTSIHOARANA Harisoa Nathalie Examinateur
Directeur de mémoire : Monsieur RANDRIAMAROSON Rivo Mahandrisoa
Soutenu le : 02 Juin 2016
Numéro d’ordre : Année universitaire : 2014-2015
CONCEPTION ET RÉALISATION D’UN
SYSTEME DE GÉOLOCALISATION
ANDROID
i
REMERCIEMENT
Tout d’abord, je rends grâce à l’Eternel Dieu pour son Amour, ses bienfaits, sa
miséricorde, sa bonté et sa protection durant mes études, et surtout lors de la préparation du présent
mémoire. La soutenance de ce mémoire est aussi pour moi une occasion de remercier tous ceux qui
m’ont apporté leurs conseils, leurs appuis et leurs soutiens lors de la réalisation de ce travail. Je
tiens à remercier vivement :
Monsieur ANDRIANAHARISON Yvon, Directeur de l’Ecole Supérieure Polytechnique
d’Antananarivo qui m’a fait l’honneur et la gentillesse de nous soutenir durant les années de
formation au sein de l’Ecole.
Monsieur RATSIMBA Mamy Nirina, Chef de Département de l’Electronique à l’Ecole
Supérieure Polytechnique d’Antananarivo, pour l’éducation, les conseils et directives qu’il a
investies pour chaque étudiant du Département Electronique.
Monsieur RAKOTOMIRAHO Soloniaina pour l’honneur qu’il m’a fait d’avoir bien voulu
accepté de présider le jury de ce mémoire malgré la multiplicité de ses charges professionnelles et de
ses obligations.
Madame RAMANANTSIHOARANA Harisoa Nathalie pour l’honneur qu’il m’a fait en
acceptant d’examiner ce travail.
Monsieur RANDRIAMAROSON Rivo Mahandrisoa, Directeur de ce mémoire, qui malgré
ses nombreuses responsabilités, a bien voulu encadrer ce travail, et également pour son soutien et les
conseils qu’il m’a constamment prodigués pour l’élaboration à temps et à terme de ce travail.
A tous les Enseignants de l’école et du département Electronique, qui nous ont partagé
leur savoir-faire et leur connaissance.
A tous les membres de nos familles respectives et mes amis pour leurs soutiens
moraux, affectifs et financiers.
ii
RESUME
Les techniques de localisation sont aujourd’hui très avancées grâce à l’évolution sans
cesse de la technologie. Nous proposons dans notre travail une technique de localisation à distance,
par l’utilisation d’une application sur un terminal Android. Le principe de ce travail repose sur
l’utilisation des ressources de localisation présentes dans un terminal Android, qui permettent de
récupérer les coordonnées en temps réel. Pour ce faire, nous avons installé et configuré
l’environnement de développement Android dans notre système d’exploitation. L’application créée
a permis d’afficher les coordonnées et d les transférer vers un serveur qui enregistre les positions.
iii
TABLE DES MATIERES
REMERCIEMENT ........................................................................................................................ I
RESUME ........................................................................................................................................ II
TABLE DES MATIERES .......................................................................................................... III
LISTE DES ABREVIATIONS .................................................................................................. VI
LISTE DES FIGURES............................................................................................................. VIII
LISTE DES TABLEAUX ........................................................................................................... IX
INTRODUCTION .......................................................................................................................... 1
CHAPITRE I : ................................................................................................................................ 2
GENERALITES SUR LES LOGICIELS INFORMATIQUES ................................................ 2
1. 1 DEFINITION D’UN LOGICIEL ................................................................................................... 2
1. 2 ETYMOLOGIE : ........................................................................................................................ 2
1. 3 LES DIFFERENTS TYPES DE LOGICIELS ................................................................................... 2
1. 3. 1 LES LOGICIELS PROPRIETAIRES ET PAYANTS ......................................................................... 3
1. 3. 2 LES LOGICIELS GRATUITS OU FREEWARES ............................................................................. 4
1. 3. 3 LES LOGICIELS LIBRES .......................................................................................................... 4
1. 4 LE CYCLE DE VIE D’UN LOGICIEL ........................................................................................... 5
1. 4. 1 Les différentes activités du cycle de vie d’un logiciel......................................................... 5
Définitions des objectifs ............................................................................................................ 5
Définitions du produit et des besoins ......................................................................................... 6
Planification et gestion de projet ................................................................................................ 6
Conception ................................................................................................................................. 6
Codage ....................................................................................................................................... 6
Tests unitaires ............................................................................................................................. 6
Intégration .................................................................................................................................. 6
Qualification .............................................................................................................................. 6
Maintenance ................................................................................................................................ 7
1. 4. 2 Les grandes familles de cycle de vie d’un logiciel .............................................................. 7
Modèle en cascade ..................................................................................................................... 7
Cycle en V ................................................................................................................................. 7
Cycle en spirale : ........................................................................................................................ 8
iv
CHAPITRE II : .............................................................................................................................. 9
DEVELOPPEMENT D’APPLICATION ANDROID ................................................................ 9
2. 1 Les généralités sur Android .................................................................................................... 9
2. 1. 1 Définition ............................................................................................................................. 9
2. 1. 2 Historique ............................................................................................................................ 9
2. 1. 3 LANGUAGE DES PROGRAMMATIONS ....................................................................... 9
2. 1. 4 Les versions Android ......................................................................................................... 10
2. 1. 5 Caractéristiques d’Android ................................................................................................ 10
2. 1. 6 Architecture d’un système Android ................................................................................... 11
2. 1. 7 Composantes d’une application Android .......................................................................... 12
Activities (Activités en français) ............................................................................................. 12
Services .................................................................................................................................... 12
Broadcast and intent Receivers ................................................................................................ 12
Content providers ..................................................................................................................... 12
2. 1. 8 Cycle de vie d’une activité ................................................................................................ 13
2. 2 GLOBAL POSITIONING SYSTEM OU GPS .................................................................... 14
2. 2 .1 Quelques définitions .......................................................................................................... 14
Géolocalisation ........................................................................................................................ 14
Coordonnées géographiques .................................................................................................... 15
Le GPS ..................................................................................................................................... 15
2. 2 .2 Principe de fonctionnement du GPS .................................................................................. 16
2. 2 .3 GPS DANS LE TELEPHONE ANDROID ...................................................................... 16
CHAPITRE III : ........................................................................................................................... 17
REALISATION D’UNE APPLICATION DE GEOLOCALISATION ANDROID.............. 17
3. 1 Principe de fonctionnement de l’application ........................................................................ 17
3. 2 Présentation de l’application Android .................................................................................. 22
3. 3 Présentation du coté client dans le serveur ........................................................................... 25
CONCLUSION ............................................................................................................................. 27
ANNEXE 1 : LES PRINCIPAUX SYSTEMES DE LOCALISATION .................................. 28
ANNEXE 2 : LE LANGAGE JAVA .......................................................................................... 31
ANNEXE 3 : EXTRAITS DE CODE ......................................................................................... 32
ANNEXE 4 : HISTORIQUE DE LA VERSION ANDROID .................................................. 33
v
ANNEXE 5 : WAMPSERVEUR ................................................................................................ 34
ANNEXE 6 : JETBRAINS PHPSTORM................................................................................... 36
REFERENCES ............................................................................................................................. 37
vi
LISTE DES ABREVIATIONS
2D: Deux Dimensions
3D: Trois Dimensions
AAC: Advanced Audio Coding
ADT-bundle : Android Développements Tools bundle
AMR: Audio Modem Riser
API: Application Programming Interface
CD: Compact Disc
CPU: Central Processing Unit
DVM: Dalvik Virtual Machine
EDGE: Enhanced Data GSM Environment
EVDO: EVolution Data Optimized
GIF: Graphics Interchange Format
GPRS: General Packet Radio Service
GPS: Global Positionning System
GSM: Groupe Spécial Mobile ou Groupe Système Mobile
HSDPA: High Speed Downlink Packet Access
HSUPA: High Speed Uplink Packet Access
JDK : Java Developpement Kit
JPEG: Joint Photographic Expert Group
JRE: Java Runtime Environment
JVM: Java Virtual Machine
Libc: Library C
LTE: Long Term Evolution
MMS: Multimedia Messaging System
MP3: Motion Picture Expert Group- Audio Layer 3
MPEG: Motion Picture Expert Group
NFC: Near Field Communication
vii
NFS: Network File System
OHA: Open Handset Alliance
PC: Personal Computer
PHP: Personal Home Page
PNJ: Personnage Non Joueur
SDK: Software Development Kit
SMS: Short Message System
SQL: Structure Query Language
SSL: Secure Socket Layer
UMTS: Universal Mobile Telecommunications System
VGA: Video Graphics Array
VLC: Video LAN Client
XMPP: Extensible Messaging and Presence Protocol
viii
LISTE DES FIGURES
Figure 1.1 : Modèle en cascade du cycle de vie d’un logiciel……………………………………..7
Figure 1.2 : Modèle en V du cycle de vie d’un logiciel……………………………………………8
Figure 1.3 : Modèle en spirale du cycle de vie d’un logiciel………………………………………8
Figure 2.1 : Logo d’un système Android…………………………………………………………..9
Figure 2.2 : Architecture d’un système Android………………………………………………….11
Figure 2.3 : Cycle de vie d’une activité……..…………………………………………………...13
Figure 2.4 : Recherche des coordonnées géographiques sur une sphère …………………………15
Figure 3.1 : Fonctionnement du système en général……………………………………………...17
Figure 3.2 : Fichier eclipse.exe après extraction ………………………………………………....18
Figure 3.3 : Création nouveau projet sur ADT……………………………………………………20
Figure 3.4 : Représentation de l’icône Android Virtual Device Manager………………………..20
Figure 3.5 : Représentation d’une fenêtre lors d’une Création de l’AVD………………………...21
Figure 3.6 : Configuration de l’AVD……………………...……………………………………..21
Figure 3.7 : Emulateur SAMSUMG……………………………………………………………...22
Figure 3.8 : Première interface de l’application Android…………………………………………23
Figure 3.9 : Interface intermédiaire………………………………………………………………23
Figure 3. 10 : Interface géolocalisation…………………………………………………………..24
Figure 3.11 : Interface pour le client au serveur………………………………………………… 25
Figure 3.12 : Liste des coordonnées stockées dans le serveur…………………………………. 26
Figure A.1 : Distance entre un satellite et le terminal (gauche) les trois satellites et le terminal...29
Figure A.2 : Adresse par défaut du Serveur………………………………………………………34
Figure A.3 : Interface du logiciel WampServeur dans le navigateur……….…………………...34
Figure A.4 : Formulaire du serveur……………………………………………………………....35
Figure A.5 : Création d’un fichier php dans l’éditeur…………………………………………….36
ix
LISTE DES TABLEAUX
Tableau I : Quelques exemples de logiciels propriétaires avec les descriptions ............................ 3
Tableau II: Quelques exemples de logiciels gratuits avec les descriptions .................................... 4
Tableau III : Quelques exemples de logiciels libres avec les descriptions ..................................... 5
Tableau IV : Historique de la version Android ............................................................................. 33
ANDRIANTSALAMA Tina Herimino 1
INTRODUCTION
Les progrès technologiques récents innovent la majorité des pays et affectent le mode de
vie de chaque individu. Cet avancé concerne le monde de l’informatique. Les moyens d’accès ont
évolué, des nouveaux appareils électroniques, fruits d’une véritable révolution technologique sont
apparu
L’Open Handset Alliance ou OHA, qui est un consortium de plusieurs entreprises à
vocation interdépendant, a pour but de développer des normes ouvertes pour les appareils
électroniques mobiles. Le système d’exploitation nommé Android est un des produits de ce
consortium, il intéresse de plus en plus différents catégories de personnes depuis de simples
utilisateurs à de géants d’entreprises.
Une des raisons du choix de ce mémoire est de pouvoir localiser un téléphone Android à
distance à l’aide d’une application. C’est dans ce cadre que le présent travail intitulé : « Conception
et réalisation d’un système de géolocalisation Android » a été entrepris.
Notre travail comporte trois grandes parties. La première partie est consacrée sur les
généralités des logiciels informatiques. La deuxième partie concerne le développement d’application
Android et la troisième partie décrit la réalisation de l’application géolocalisation.
ANDRIANTSALAMA Tina Herimino 2
CHAPITRE I :
GENERALITES SUR LES LOGICIELS INFORMATIQUES
1. 1 DEFINITION D’UN LOGICIEL
Dans un système informatique, on distingue deux parties : la partie matérielle représentée
par l’ordinateur et ses périphériques et la partie immatérielle représentée par les logiciels.
On appelle logiciel, application, ou programme, l’ensemble de programmes
informatiques qui vont être exécutées par la machine pour réaliser une tâche ou une fonction
particulière. Un logiciel se décompose ou utilise des composants logiciels plus élémentaires,
généralement partagés par plusieurs programmes (bibliothèques). Il se présente sous deux formes :
La forme de code source qui est une arborescence de fichiers texte décrivant dans un
langage de programmation les actions élémentaires à enchaîner pour réaliser une tâche plus
complexe. C'est sous cette forme que le programme est conçu par l'informaticien ;
La forme de code exécutable, directement exploitable par l'ordinateur. Pour les
langages interprétés (PHP, Perl, etc.), le code source conduit directement l'exécution du programme.
Pour les langages compilés (Java, C++, etc.) le code exécutable est obtenu grâce à une traduction
automatique depuis le code source et peut être stocké pour une exécution ultérieure ; ce processus
s'appelle la compilation [1] [2].
1. 2 ETYMOLOGIE :
Etymologiquement, en 1969, le mot logiciel est formé à partir des
mots logique et matériel comme traduction du terme anglais software par la Délégation à
l’informatique chargée du Plan Calcul. Il est ensuite adopté par l'Académie française en 1972. Cette
traduction est officialisée par un arrêté publié au Journal Officiel le 12 janvier 1974 et confirmée par
l'arrêté du17 janvier 1982 [3] [4] [5].
1. 3 LES DIFFERENTS TYPES DE LOGICIELS
Il existe 3 grands types de logiciels informatiques quel que soit le système logiciel
d’exploitation de l’ordinateur (GNU/Linux, Windows ou Mac) : les logiciels propriétaires et payants,
les logiciels gratuits et les logiciels libres [6] [7].
ANDRIANTSALAMA Tina Herimino 3
1. 3. 1 Les logiciels propriétaires et payants
a. Les logiciels propriétaires
Les logiciels propriétaires sont des logiciels fabriqués par des sociétés de logiciel et sont
vendus à l’utilisateur lors de l’achat de son ordinateur, en boîte dans les magasins spécialisés ou sur
Internet. Ce qui signifie que l'auteur se réserve du droit de diffuser et de modifier le logiciel.
Cependant, lorsqu’il est vendu, l’utilisateur n’obtient pas le droit de propriété sur le logiciel mais
seulement un droit d’utilisation, c’est une licence utilisateur. Pour ce type de logiciel on peut prendre
comme exemple le système d’exploitation Windows.
b. Les logiciels payants
Les auteurs de sharewares, pour remédier aux abus, volontaires ou non, prennent eux
aussi de plus en plus souvent soin de désactiver certaines fonctionnalités de leurs logiciels pour inciter
le public à les rémunérer. Le but de ce type d'application est d'appâter gentiment le client en lui
fournissant un aperçu des capacités du logiciel. Mais juste un aperçu car bon nombre de ses
fonctionnalités seront bridées. Ainsi, par exemple, avec la version démo du célèbre Photoshop vous
ne pourrez ni imprimer, ni sauvegarder, ni même faire du copier-coller. Ce qui signifie que si on
télécharge une démo du logiciel payant, cela ne nous engage à rien puisqu’on ne pourra pas exploiter
véritablement le logiciel. Le tableau I donne quelques exemples de logiciels payants.
Tableau I : Quelques exemples de logiciels propriétaires avec les descriptions [6]
Logos Descriptions
Office : logiciel d’édition (traitement de texte, création de diaporama, édition de
tableur, etc.) le plus utilisé à travers le monde
Architecture 3D Premium : propose de modéliser votre maison et de réaliser votre
décoration d’intérieur grâce à de nombreux outils et bibliothèques d’éléments :
murs, portes, mobilier, etc.
Virtual DJ : La référence des logiciels de mix sur PC. Mixer vos fichiers audio et
vidéo comme un vrai DJ. Avec sa prise en main simple et intuitive, il est la
solution idéale pour mixer en temps réel ou réaliser ses propres compilations
ANDRIANTSALAMA Tina Herimino 4
1. 3. 2 Les logiciels gratuits ou freewares
Les logiciels gratuits ou freewares sont des logiciels fabriqués par des sociétés de logiciel
ou des auteurs isolés. Ils sont gratuits pour l’utilisateur qui peut les procurer sur Internet par
téléchargement ou dans des CD-Rom de magasin dans les kiosques de journaux.
Il est possible d’en faire des copies et de les faire circuler entre utilisateurs. Le code source n’est pas
modifiable, ce qui implique que le logiciel n’évolue que si son auteur le fait évoluer. Ce type de
logiciel est le plus souvent très performant car les sociétés ou les auteurs qui les fabriquent ont pour
objectif de se faire connaître le plus rapidement possible auprès des utilisateurs, c’est une sorte de «
carte de visite » pour eux. Le tableau II donne quelques exemples de logiciels gratuits.
Tableau II: Quelques exemples de logiciels gratuits avec les descriptions [6]
Logos Descriptions
Google earth : ce logiciel est une mappemonde virtuelle, quelques clics de
souris suffisent pour consulter les images enregistrées par satellite, de la
plupart des endroits de la planète
Lime wire : ce programme permet de télécharger ainsi que de partager des
MP3, des vidéos, des documents, des programmes et des images
Windows Live Messengers : ce logiciel est destiné à la messagerie instantanée
1. 3. 3 Les logiciels libres
Il s’agit d’un logiciel dont le code source est accessible au public et que les internautes
peuvent utiliser tel quel ou le modifier. En général, aucun droit de licence n’est exigé pour ce type de
logiciel puisque son objectif est la garantie de la liberté de l’utilisateur dans son utilisation.
Ces logiciels sont fabriqués par des sociétés de logiciel ou des auteurs isolés. Ils sont
presque tout le temps gratuit pour l’utilisateur qui peut se procurer sur Internet par téléchargement,
dans des CD-Rom de magasin ou dans les kiosques de journaux.
Il est possible d’en faire des copies et de les faire circuler entre utilisateurs.
ANDRIANTSALAMA Tina Herimino 5
On peut prendre le système GNU/Linux comme exemple de ce type de logiciel. Le
tableau III donne quelques exemples de logiciels libres.
Tableau III : Quelques exemples de logiciels libres avec les descriptions [6]
Logos Descriptions
Emule : avec ce programme, on a la possibilité de partager n’importe quel type
de fichiers et en effet, on sera en mesure de télécharger les fichiers que les autres
utilisateurs à la disposition de la communauté.
VLC Media Player : ce logiciel est un lecteur multimédia extrêmement léger. La
consommation en ressource du programme a été réduite au minimum pour
fonctionner parfaitement en arrière-plan.
Mozilla firefox : est un logiciel de navigation internet parfaitement adapté à
l’utilisation dans un cadre professionnel ou personnel
1. 4 LE CYCLE DE VIE D’UN LOGICIEL
Le développement et l'évolution d'un logiciel doit être vu comme un processus, appelé
un peu abusivement le processus du logiciel (software process) ou cycle de vie du logiciel (Software
life cycle). Ce processus est composé de sous-processus qui communiquent entre eux et dont certains
évoluent en parallèle. Chaque processus peut être caractérisé par ses conditions de déclenchement,
les activités déployées, les ressources utilisées, les produits résultants et ses critères de terminaison.
Un certain nombre d'activités accompagnent nécessairement tout le cycle de
développement. Nous allons commencer par décrire ces activités et nous parlerons plus tard des
modèles du cycle de vie d’un logiciel [8] [9].
1. 4. 1 Les différentes activités du cycle de vie d’un logiciel
Définitions des objectifs
Définir les objectifs consiste à définir la finalité du projet et son inscription dans une
stratégie globale.
ANDRIANTSALAMA Tina Herimino 6
Définitions du produit et des besoins
Cette phase consiste à analyser les besoins et les faisabilités, c'est-à-dire l'expression, le
recueil et la formalisation des besoins du demandeur (le client) et de l'ensemble des contraintes. Le
client et le fournisseur sont d'accord sur le produit à réaliser ainsi que sur la façon de l'utiliser et en
particulier sur l'interface utilisateur qu'il s'agisse d'une interface homme-machine ou d'une
Application Programming Interface (API).
Planification et gestion de projet
La phase de planification permet de découper le projet en tâches, de décrire leur
enchaînement dans le temps, d'affecter à chacune une durée et un effort calculé. On notera également
les dépendances extérieures comme par exemple l'arrivée d'une nouvelle machine ou d'un nouveau
logiciel afin de mesurer les risques encourus.
Conception
La Conception générale consiste à l'élaboration des spécifications de l'architecture
générale du logiciel ainsi que les interfaces entre les différents modules. Tandis que la conception
détaillée, consistant à définir précisément chaque sous-ensemble du logiciel.
Codage
Le codage consiste à traduire dans un langage de programmation les fonctionnalités
définies lors de phases de conception.
Tests unitaires
Ces tests permettent de vérifier individuellement que chaque sous-ensemble du logiciel
est implémenté conformément aux spécifications.
Intégration
L'objectif de l’intégration est de s'assurer de l'interfaçage des différents éléments
(modules) du logiciel. Elle fait l'objet de tests d'intégration consignés dans un document.
Qualification
Elle consiste à vérifier la conformité du logiciel aux spécifications initiales. Cette phase
termine le développement. A l'issue de cette phase le logiciel est prêt à la mise en exploitation.
ANDRIANTSALAMA Tina Herimino 7
Maintenance
Lorsque le produit a été accepté, il passe en phase de maintenance comprenant toutes les
actions correctives (maintenance corrective) et évolutives (maintenance évolutive) sur le logiciel.
1. 4. 2 Les grandes familles de cycle de vie d’un logiciel
Modèle en cascade
Ce modèle a été mis au point dès 1966, puis formalisé aux alentours de 1970. Dans ce
modèle le principe est très simple : produire des livrables définis au préalable, par ailleurs, chaque
phase se termine à une date précise par la production de certains documents ou logiciels. Les résultats
sont définis sur la base des interactions entre étapes, ils sont soumis à une revue approfondie et on ne
passe à la phase suivante que s'ils sont jugés satisfaisants [10].
Figure 1.1 : Modèle en cascade du cycle de vie d’un logiciel
Cycle en V
Le modèle en V demeure actuellement le cycle de vie le plus connu et certainement le
plus utilisé. Le principe de ce modèle est qu'avec toute décomposition doit être décrite la
recomposition, et que toute description d'un composant doit être accompagnée de tests qui
permettront de s'assurer qu'il correspond à sa description. Le modèle en V du cycle de vie d’un
logiciel est montré dans la Fig. 1.2 [11].
ANALYSES DES BESOINS
SPECIFICATION
PLANIFICATION
CONCEPTION
IMPLEMENTATION
INTEGRATION
QUALIFICATION
MAINTENANCE
ANDRIANTSALAMA Tina Herimino 8
Figure 1.2 : Modèle en V du cycle de vie d’un logiciel
Cycle en spirale :
Le développement reprend les différentes étapes du cycle en V. Par l'implémentation de
versions successives, le cycle recommence en proposant un produit de plus en plus complet et
robuste. Le cycle en spirale met cependant plus l'accent sur la gestion des risques que le cycle en V.
En effet, le début de chaque itération comprend une phase d'analyse des risques. Celle-ci est rendue
nécessaire par le fait que, lors d'un développement cyclique, il y a plus de risques de défaire, au cours
de l'itération, ce qui a été fait au cours de l'itération précédente. La Fig. 1.3 montre le cycle en spirale
[12].
Figure 1.3 : Modèle en spirale du cycle de vie d’un logiciel
ANDRIANTSALAMA Tina Herimino 9
CHAPITRE II :
DEVELOPPEMENT D’APPLICATION ANDROID
2. 1 LES GENERALITES SUR ANDROID
2. 1. 1 Définition
Android, prononcé androïde, est un système d'exploitation mobile basé sur le noyau
Linux et développé actuellement par Google. Il est initialement conçu par la société Android, puis il
a été racheté par Google en 2005.
Le système a d'abord été conçu pour les smartphones et tablettes tactiles, puis il s'est
diversifié dans les objets connectés et ordinateurs comme les télévisions (Android TV), les voitures
(Android Auto), les ordinateurs (Android-x86) et les smartwatch (Android Wear). La Fig. 2.1 montre
le logo d’un système Android [13].
Figure 2.1 : Logo d’un système Android
2. 1. 2 Historique
Après le rachat d’Android, Google s’est associé à d’autres firmes pour créer une alliance
de compagnies internationales appelée Open Handset Alliance (OHA). Elle a pour but de créer une
plateforme complète, développée pour les terminaux mobiles, les smart phones, les tablettes tactiles
à libre accès. L’OHA est aujourd’hui une puissante source de production d’applications mobiles, ce
qui a permis au système Android de connaitre un essor remarquable [14].
2. 1. 3 LANGUAGE DES PROGRAMMATIONS
Les langages utilisés pour programmer une application Android sont JAVA et XML pour
les interfaces [15] [16].
ANDRIANTSALAMA Tina Herimino 10
2. 1. 4 Les versions Android
Les versions Android se succèdent rapidement et les changements qui les accompagnent
sont souvent conséquents en termes de nouvelles fonctionnalités et d’améliorations. Cependant, ces
évolutions n’ont pas toujours été sans impact sur le bon fonctionnement et la compatibilité des
applications entre versions [17].
2. 1. 5 Caractéristiques d’Android
Android fournit un certain nombre de fonctionnalités pour la satisfaction des utilisateurs
et pour aider les développeurs d’application. Il est doté d’un ensemble de caractéristiques essentielles,
qui font de lui une plate-forme d’applications très lucrative. Cet ensemble comporte un système
d’exploitation et des applications clés décrites à la Fig. 2.2. Ces applications sont citées ci-après [18]
[19] [20].
Les Framework (cadre de travail) : elles permettent aux développeurs de se
concentrer sur les fonctionnalités spécifiques à un projet et d’améliorer leur productivité. Elles sont
constituées par un ensemble de librairies du développement.
Le navigateur web : permet de tirer pleinement profit des architectures, d’installer
les applications de toutes sortes, de gérer les téléchargements, et bien d’autres fonctionnalités car être
connecté est devenu essentiel dans le monde moderne.
L’interface graphique : c’est un dispositif de dialogue entre l’homme et la machine.
Elle est mise en œuvre par un ensemble de logiciels souvent inclus dans les systèmes d’exploitations.
Le stockage : c’est un espace requis pour l’installation des applications et le stockage
des fichiers.
Le support matériel : permet à un système de communiquer avec les pilotes ou les
périphériques.
Les environnements de développement : c’est l’un des aspects fondamentaux pour
pouvoir gérer avec succès un certain nombre de développements. Il aide à développer les
applications, gérer les fichiers sources, déboguer les codes, et enfin tester le travail avant de le lancer
sur un environnement de test ou de production.
La machine virtuelle et bibliothèque : permettant d’exécuter les programmes
prévues pour la plateforme Java.
ANDRIANTSALAMA Tina Herimino 11
La messagerie : Les différentes formes de messagerie disponibles pour le système
sont Short Message System ou SMS, MultiMedia Messaging System ou MMS et Extensible
Messaging and Presence Protocol ou XMPP.
2. 1. 6 Architecture d’un système Android
L’architecture d’un Android est représentée par la Fig. 2.2.
Figure 2.2 : Architecture d’un système Android (Source : [21])
Le système Android possède une architecture complète, structurée en couches, lui
permettant d’être une puissante plateforme. L’architecture de l’environnement Android peut être
subdivisée en 5 grandes couches [22] [23].
Le noyau Linux (Linux kernel) : c’est l’élément du système d’exploitation qui
permet de faire le pont entre le matériel et le logiciel. Il gère la mémoire, les processus, les capteurs
(appareils photos, GPS, accéléromètre, etc.), et le matériel (écran, clavier, etc.)
Le runtime Android : son concept permet à chaque application Android de
fonctionner dans son propre processus. C’est la machine virtuelle Java, constituée de : Dalvik (une
Java Virtual Machine (JVM) par application) et un code spécifique Android.
ANDRIANTSALAMA Tina Herimino 12
Librairies ou bibliothèques(C/C++) : Cet élément favorise la réutilisabilité des
développements et permet de gérer les graphismes, les médias, les web, etc.
Framework : kit des gestionnaires pour les applications plus une API java. Elle
contient : l’API pour développement des programmes, la gestion des fenêtres, des activités, des
ressources, etc.
Un lot d’application standard : il comporte un environnement bureau, un carnet
d’adresses, un navigateur web, un téléphone, etc.
2. 1. 7 Composantes d’une application Android
Une application Android est composée de 4 éléments de base [24].
Activities (Activités en français)
Une activité est la composante principale pour une application Android. Elle représente
l'implémentation métier dans une application Android. Prenons un exemple : pour une application
qui liste tous les fichiers MP3 présents dans un téléphone, le projet pourrait se décomposer comme
suit : une vue pour afficher la liste des MP3 et une activité pour gérer le remplissage et l'affichage de
la liste si l'on veut pouvoir rajouter, supprimer des MP3, on pourrait rajouter d'autres activités.
Services
Un service, à la différence d'une activité, ne possède pas de vue mais permet l'exécution
d'un algorithme sur un temps indéfini. Il ne s'arrêtera que lorsque la tâche est finie ou que son
exécution est arrêtée. Il peut être lancé à différent moment : au démarrage du téléphone ; au moment
d'un événement (arrivée d'un appel, SMS, mail, etc.) ; au lancement d’une application et à une action
particulière dans une application.
Broadcast and intent Receivers
Un Broadcast Receiver permet d'écouter ce qui se passe sur le système ou sur une
application et déclencher une action prédéfinie. Les services sont souvent lancés par ce mécanisme.
Content providers
Les « content providers » servent à accéder à des données depuis l’application. Par
exemple on peut accéder : aux contacts stockés dans le téléphone ; à l'agenda ; aux photos ainsi qu'à
d'autres données depuis l’application grâce aux content providers.
ANDRIANTSALAMA Tina Herimino 13
2. 1. 8 Cycle de vie d’une activité
Une activité n'a pas de contrôle direct sur son propre état même les programmeurs, il
s'agit plutôt d'un cycle rythmé par les interactions avec le système et d'autres applications. La Fig.
2.3 nous montre le déroulement du cycle de vie d’une activité [24].
Figure 2.3 : Cycle de vie d’une activité
ANDRIANTSALAMA Tina Herimino 14
Sur l’architecture du cycle de vie de la figure précédente, les rectangles illustrent les méthodes
de rappel pouvant être mises en œuvre. Ces méthodes effectuent les opérations lorsqu’une activité se
déplace entre les états. Les descriptions des méthodes sont citées ci-après :
onCreate : cette méthode est appelée à la création de l’activité. Elle sert à initialiser
l’activité ainsi que toutes les données nécessaires à cette dernière.
onStart : cette méthode est appelée dans le cas où l’application est en arrière-plan et
qu'elle repasse en avant-plan. Si l’activité ne peut pas aller en avant-plan quelle que soit la raison,
l'activité sera transférée à onStop.
onResume : cette méthode est appelée après onStart (au moment où l’application
repasse en avant-plan). OnResume est aussi appelée quand l’application passe en arrière-plan à cause
d'une autre application.
onPause : appelée juste avant qu'une autre activité que l’activité en cours passe en
onResume. À ce stade, l’activité en cours n'a plus accès à l'écran, toute action en rapport avec
l'interaction avec utilisateur doit s’arrêter.
onRestart : cette méthode est exécutée lors de la reprise d’une activité, c’est-à-dire
lorsque celle-ci repasse en premier plan ;
onStop : appelée quand l’activité n'est plus visible quelle que soit la raison.
onDestroy : appelée quand l’application est totalement fermée (Processus terminé).
2. 2 GLOBAL POSITIONING SYSTEM OU GPS
2. 2 .1 Quelques définitions
Géolocalisation
La géolocalisation ou géoréférencement est un procédé permettant de positionner un
objet, une personne, etc. sur un plan ou une carte à l'aide de ses coordonnées géographiques. Cette
opération est réalisée à l'aide d'un terminal capable d'être localisé grâce à un système de
positionnement par satellites et un récepteur GPS par exemple ou à d'autres techniques et de publier,
en temps réel ou de façon différée, ses coordonnées géographiques. Les positions enregistrées
peuvent être stockées au sein du terminal et être extraites postérieurement, ou être transmises en
temps réel vers une plateforme logicielle de géolocalisation [25] [26].
ANDRIANTSALAMA Tina Herimino 15
Coordonnées géographiques
Soit M, un point de la surface de la terre. Les coordonnées géographiques d'un point M
de la surface de la Terre sont [27] :
La longitude λ : angle orienté entre le plan méridien origine et le plan méridien contenant
le point M. Le méridien d’origine est celui de Greenwich.
La latitude ϕ : angle orienté entre le plan de l'équateur et la normale à l'ellipsoïde passant
par le point M.
La hauteur h : distance algébrique entre le point M et l'ellipsoïde.
La Fig. 2.4 nous montre les coordonnées géographiques sur une sphère.
Figure 2.4 : Recherche des coordonnées géographiques sur une sphère
Le GPS
Le Global Positioning System (GPS), en français Système mondial de positionnement,
littéralement, ou Géo-positionnement par Satellite est un système de géolocalisation fonctionnant au
niveau mondial et reposant sur l'exploitation de signaux radio émis par des satellites dédiés. Il est
conçu par et pour le département de la défense des Etats-Unis. Il a été mis en service à partir de 1986,
constitué de 24 satellites NAVSTAR et utilise la triangulation pour se localiser. En 2011, il est avec
GLONASS, un système de positionnement par satellites entièrement opérationnel et accessible au
grand public [27] [28].
ANDRIANTSALAMA Tina Herimino 16
2. 2 .2 Principe de fonctionnement du GPS
Le GPS fonctionne grâce au calcul de la distance qui sépare un récepteur GPS de
plusieurs satellites. Les informations nécessaires au calcul de la position des satellites étant
transmises régulièrement au récepteur, celui-ci peut connaître ses coordonnées, grâce à la
connaissance de la distance qui le sépare des satellites [28] [29].
2. 2 .3 GPS DANS LE TELEPHONE ANDROID
Tous les téléphones Android de nos jours possèdent du GPS intégré. Cette fonctionnalité
permet de connaître la situation, mais aussi de facilement se repérer pour aller d'un point à un autre.
Lorsque le téléphone est connecté sur le réseau internet et le GPS est activé, on peut localiser ce
téléphone en utilisant une application qui permet de récupérer les coordonnées trouvées par le GPS
c’est-à-dire affiche la position GPS dans le format décimal et sexagésimal (degrés, minutes,
secondes). Notre travail consiste donc à exploiter ce type de GPS.
ANDRIANTSALAMA Tina Herimino 17
Chapitre III :
REALISATION D’UNE APPLICATION DE GEOLOCALISATION ANDROID
3. 1 Principe de fonctionnement de l’application
3. 1. 1 Descriptif
Il s’agit d’une application utilisée pour localiser un téléphone Android à distance.
L’application récupère les coordonnées géographiques du téléphone mobile en temps réel grâce à
l’utilisation des sources de localisation disponible dans le téléphone. Les coordonnées récupérées
seront envoyées tous les 1mn vers un serveur. Ce dernier enregistre les coordonnées dans sa base de
données. En connectant sur le serveur, le propriétaire du téléphone pourrait consulter la position
exacte du téléphone en temps réel. A l’intérieur de l’application, l’utilisateur peut regarder aussi sa
position. La liaison entre le serveur et le téléphone mobile est assuré par un réseau internet, ce qui
signifie que le téléphone doit être connecté à l’internet pour pouvoir utiliser correctement
l’application. La Fig. 3. 1 nous montre le principe d’interconnections général du système entier.
Figure 3.1 : Fonctionnement du système en général
ANDRIANTSALAMA Tina Herimino 18
La flèche bleue représente la connexion internet pour la liaison. Pour la flèche rouge, elle
représente le chemin des données qui sont envoyées par le téléphone vers le serveur. La flèche verte
représente la demande ou la requête du client vers le serveur, ce dernier cherche la solution demandée
dans la base de données. La flèche orange représente la réponse trouvée par le serveur dans la base
de données et la renvoie au client.
3. 1. 2 Outil de développement
a. Android Développements Tools bundle (ADT-bundle)
Pour la réalisation de l’application, on a choisi Android Développements Tools bundle
(ADT-bundle). Mais avant de lancer ce logiciel, on doit d’abord installer le Java Developpement Kit
(JDK) qui contient le Java Runtime Environment (JRE), le JRE contient la Java Virtual Machine
(JVM), les bibliothèques de base du langage ainsi que tous les composants nécessaires au lancement
d'applications ou d'applets Java. On a aussi besoin de la Software Development Kit (SDK) Android
qui permet de développer des applications uniquement pour Android. Après avoir installé le JDK, on
télécharge l’ADT bundle. Le fichier téléchargé est un fichier zip, on doit l’ouvrir avec le lecteur
PowerISO ou autre lecteur qui peut le lire ou bien l’extraire puis le lancer directement en cliquant sur
le fichier eclipse.exe. La Fig. 3.2 montre le fichier eclipse.exe après extraction.
Figure 3.2 : Fichier eclipse.exe après extraction
ANDRIANTSALAMA Tina Herimino 19
b. WampServer
Pour la création de notre serveur, on a utilisé WampServeur, la création et la gestion de
la base de données et des tables sont effectuées dans phpmyadmin en utilisant le langage MySQL.
L’installation et la démarche d’utilisation se trouve dans l’annexe 5.
c. JetBrains PhpStorm 8.0.1
Le JetBrains PhpStorm est un éditeur texte du langage Personal Home Page (PHP) et
HTML etc. Le langage PHP nous permet l’accès dans le serveur et de réaliser des actions souhaitées
par l’utilisateur en utilisant les instructions CREATE, READ, UPDATE, DELETE (CRUD) et le
langage HTML est utilisé pour l’interface de communication avec le client.
Pour la réalisation de l’application géolocalisation Android, on utilise la classe
LocationManager qui permet d’accéder aux services disponibles de localisation du système,
LocationListener est utilisé pour la réception des notifications du LocationManager lorsque la
notification change, Location est utilisé pour la représentation d’une position géographique, Adress
est conçu pour représenter une adresse et Geocoder pour avoir l’adresse correspondant des
coordonnées et pour utiliser la géolocalisation Google.
On doit aussi insérer des permissions dans le fichier AndroidManifest.xml pour avoir
accès à l’internet, accès via le GPS et le réseau mobile GSM. La syntaxe est la suivante :
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-
permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-
permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
Dans ce programme, l’utilisateur a le choix entre les sources de localisation disponible,
ensuite l’exécution de la méthode choisirSource() affiche les sources disponibles trouvées. Lorsque
l’utilisateur a fini de choisir la source, la méthode obtenirPositions() est exécutée et affiche les
coordonnées dans le layout. En parallèle avec l’action d’affichage des coordonnées, l’application
envoie les coordonnées vers le serveur, cette dernière action est effectuée en arrière-plan et répété à
tous les 1mn grâce à l’utilisation d’une classe qui hérite de la classe Handler (classe utiliser pour
ANDRIANTSALAMA Tina Herimino 20
exécuter une commande de manière périodique), c’est la méthode envoie() qui est exécutée pour
l’envoyer. La méthode utilisée pour le transfert des coordonnées dans le programme vers le serveur
est la méthode POST.
Après le choix de la source utilisée, l’application reste exécutée en arrière-plan même si
l’utilisateur ferme l’application.
Pour créer un nouveau projet Android avec ADT, on clique sur le menu file puis New et
après on clique sur Android Application Project (File/New/Android Application Project). Cette
créaction de nouveau projet est illustrée dans la Fig. 3. 3.
Figure 3.3 : Création nouveau projet sur ADT
Après avoir cliqué sur Android Application Project, il faut entrer les paramètres suivants :
Application Name : C’est le nom de l’application qui va apparaître sur le smartphone
Android.
Project Name : C’est le nom du projet Eclipse. Tous les fichiers seront créés sous un
dossier portant le même nom.
Package Name : C’est le package namespace (suivant les mêmes règles de
programmation Java) qui regroupera tout le code source qu'on va écrire. D’une manière générale, le
nom du package doit être unique.
Lorsque la création du projet est terminée, on doit créer un émulateur pour tester notre
projet. La création se fait à l’aide d’AVDM dont l’icône est entourée en rouge dans la Fig. 3.4.
Figure 3.4 : Représentation de l’icône Android Virtual Device Manager
ANDRIANTSALAMA Tina Herimino 21
Après avoir cliqué dessus une fenêtre représentée dans la Fig. 3.5 suivant apparait.
Figure 3.5 : Représentation d’une fenêtre lors d’une Création de l’AVD
On clique sur New pour créer et configurer un nouvel émulateur. La Fig. 3.6 représente
la fenêtre de la configuration de l’AVD.
Figure 3.6 : Configuration de l’AVD
On clique sur le bouton Start pour lancer l’émulateur
ANDRIANTSALAMA Tina Herimino 22
Figure 3.7 : Emulateur SAMSUMG
Pour que l’émulateur exécute notre programme correctement, on doit le configurer. Les
commandes à exécuter sont alors les suivantes : d’abord on clique sur menu puis on choisit paramètres
(ou bien settings), ensuite, on choisit applications et enfin on coche sources inconnues Cliquer sur
OK quand le warning s'affiche (puisque c'est bien une application de confiance). Même configuration
pour un téléphone réel.
La programmation a été effectuée sur un ordinateur doté les capacités suivantes : la
marque est HP, le microprocesseur est Intel Core 2 duo, la mémoire vive est 2 Go et le disque dur est
250 Go.
3. 2 Présentation de l’application Android
Lorsque l’utilisateur a fini l’installation de l’application, il doit créer un compte pour
utiliser l’application, la création du compte est faite pour la raison de sécurité. La Fig. 3.8 représente
la première interface de notre application et la Fig. 3.9 l’interface intermédiaire.
ANDRIANTSALAMA Tina Herimino 23
Figure 3.8 : Première interface de l’application Android
Figure 3.9 : Interface intermédiaire
ANDRIANTSALAMA Tina Herimino 24
L’interface intermédiaire est apparue lorsqu’on appui sur le bouton créer un compte. Il
contient les informations qui doivent être remplie par l’utilisateur. Si on a déjà un compte enregistré
dans l’application, le bouton créer un compte n’est plus actif, c’est-à-dire qu’on ne peut plus créer un
autre compte. Après l’enregistrement des informations, le bouton LOCALISATION est devenu actif
lorsqu’on appuis dessus on voie apparaitre l’interface représentée dans la Fig. 3.10.
Figure 3. 10 : Interface géolocalisation
Cette interface contient l’affichage des coordonnées qui seront envoyée au serveur, le
bouton ACTIVATION SOURCE permet de choisir la source utiliser pour la localisation du mobile,
le bouton compte d’utilisateur affiche les détails du compte d’utilisateur enregistré et enfin le bouton
ADRESSE affiche l’adresse correspondant de la coordonnée trouvée.
Difficulté : Dans notre émulateur, l’utilisation de la GPS n’est pas encore possible pour
la version de l’ADT qu’on a utilisée, il faut l’essayer sur un terminal mobile réel pour tester le
programme. Le fonctionnement du GPS Android dans le téléphone réel a des difficultés sur la capture
ANDRIANTSALAMA Tina Herimino 25
des signaux envoyé par le satellite lorsqu’on est à l’intérieur d’un bâtiment. Pour l’utilisation de
réseau mobile, les données enregistrées ou les coordonnées enregistrées dans sa base de données sont
confidentiel, donc on ne peut pas l’utiliser même si on le trouve dans la liste de la source disponible.
3. 3 Présentation du coté client dans le serveur
En saisissant l’adresse du serveur dans la barre d’adresse de l’URL du navigateur, on voit
la fenêtre suivant, représenté à la Fig. 3.11 qui apparait :
Figure 3.11 : Interface pour le client au serveur
L’utilisateur doit remplir les champs en introduisant le nom et le mot de passe d’utilisateur
crée dans son terminal mobile là ou l’application est installée. Après avoir effectué cette action, le
serveur affiche tous ses coordonnées propres à l’utilisateur enregistré.
Le résultat des coordonnées géographiques de l’utilisateur après avoir rempli les champs
est représenté par la Fig. 3.12.
ANDRIANTSALAMA Tina Herimino 26
Figure 3.12 : Liste des coordonnées stockées dans le serveur
ANDRIANTSALAMA Tina Herimino 27
CONCLUSION
Le présent mémoire a concrétisé un système de géolocalisation à distance d’un terminal
mobile. Ce système offre de nombreux services envers son utilisateur.
D’un autre côté, sur le plan technique, le mémoire nous a fait bénéficier d’une expérience
considérable en qualité programmeur et de connaissance sur le fonctionnement du GPS. En ayant mis
en pratique les connaissances acquises durant ces trois années d’étude, nous avons pu achever avec
succès une application reposant sur le language JAVA.
En outre, nous avons pu maitriser des frameworks destinés aux applications de
géolocalisation d’un terminal Android.
Ce mémoire nous a permis aussi de mettre en évidence la souplesse et les multiples
avantages des plateformes JAVA EE et Android.
En perspective, il est possible et envisageable d’héberger ce projet sur un serveur web
continuellement connecté à Internet. Ceci contribuerait certainement à améliorer le système, étant
donné que la portée du réseau ne se limitera plus à quelques centaines de mètres comme avec la
technologie Wi-Fi, mais atteindra toutes les zones couvertes par Internet.
ANDRIANTSALAMA Tina Herimino 28
ANNEXES
ANNEXE 1 : Les principaux systèmes de localisation
Aujourd'hui de nombreux objets peuvent être localisés. Les systèmes de localisation
présentés ici peuvent tous être combinés pour obtenir une meilleure précision.
Localisation par géocodeur : Les logiciels de géocodage permettent de calculer et d'attribuer à une
adresse ou à un objet référencé dans une carte vecteur des positions X, Y avec une précision de quelques dizaines
de mètres en moyenne.
Localisation par satellite : La géolocalisation par satellite consiste à calculer, grâce aux signaux émis
par une constellation de satellites prévue à cet effet, la position actuelle sur la face terrestre d'un terminal équipé
d'une puce compatible. Cette position est alors traduite en termes de latitude, longitude et parfois altitude (ex :
43° 5494 N - 1° 48472 E) et peut alors être représentée physiquement sur une carte. Le réseau satellite de
positionnement le plus connu est le GPS (Global Positionning System), bien que l'alternative européenne
nommée Galileo soit en cours de déploiement. Dans le cas du GPS, pour que le repérage spatial fonctionne, un
immense réseau constitué de 27 satellites (dont 3 de secours) tournant autour de la Terre (2 tours en 24 heures) à
une altitude de 20 200 km et répartis sur 6 orbites (4 par orbite) différentes est nécessaire. Ces satellites constituent
un maillage du ciel et servent de repères aux navigateurs GPS dans leur processus de calcul de position. Ce
système de satellites est conçu de façon à ce qu’il y en ait toujours au moins quatre « visibles » par les navigateurs
GPS, sans quoi la position ne peut pas être déterminée. Pour qu'un terminal soit capable de se géolocaliser grâce
au réseau GPS, celui-ci doit être équipé d'une puce électronique GPS. Le GPS offre une précision allant de 15 à
100 mètres pour les applications civiles.
Positionnement par plusieurs satellites- principe de triangulations :
Dans le système de localisation par satellite, le terminal reçoit une onde
électromagnétique d'un premier satellite. La vitesse de cette onde est de 299792 km/s (célérité en
espace vide), le terminal peut en déduire la distance qui le sépare du satellite.
A la réception du signal d'un deuxième satellite, on peut savoir que le terminal se trouve
à l'intersection de deux cercles. Avec un troisième satellite, on sait que le terminal se trouve à
l'intersection des trois cercles ce qui permet d'en déduire deux points possibles. Considérant que le
terminal se trouve à la surface de la Terre, un seul point est considéré comme correct.
ANDRIANTSALAMA Tina Herimino 29
Figure A.1 : Distance entre un satellite et le terminal (à gauche) les trois satellites et le terminal
(à droite)
Localisation par GSM ou Global System for Mobile Communications :
Cette technique permet le positionnement d'un terminal GSM en se basant sur certaines
informations relatives aux antennes GSM auxquelles le terminal est connecté. La précision du
positionnement par GSM peut aller de 200 mètres à plusieurs kilomètres, selon que le terminal se
trouve en milieu urbain (où la densité d'antennes est supérieure), ou en milieu rural. Plusieurs
techniques existent :
Différence de temps observée ou Enhanced-Observed Timed Difference (EOTD) : le
terminal calcule le temps écoulé entre l'émission et la réception de la requête envoyée à l'antenne, il
peut alors calculer sa distance par rapport à celle-ci.
Temps d'arrivée (time of arrival)
Angle d'arrivée (angle of arrival)
Cell ID (identifiant de cellule)
Aujourd'hui, la méthode GSM la plus utilisée est celle du Cell ID (identification de la
cellule radio). Cette méthode consiste à récupérer les identifiants des antennes GSM auxquelles le
terminal est connecté. Par la suite, grâce à une base de données faisant le lien entre les identifiants
des cellules et les positions géographiques des antennes, le terminal est capable de déterminer sa
position et d'émettre une estimation.
Ces bases de données peuvent être mises à disposition par les opérateurs pour leurs
abonnés, ou par des sociétés privées qui recensent les antennes GSM ou ayant des partenariats avec
ANDRIANTSALAMA Tina Herimino 30
les opérateurs. Des bases de données communautaires existent et sont le plus souvent alimentées par
les utilisateurs eux-mêmes. Étant donné que les bases de données Cell ID ne sont pas stockées
localement dans le terminal, une connexion internet de type GPRS/EDGE ou 3G peut être nécessaire
afin d'émettre une requête pour obtenir la correspondance Cell ID / longitude latitude.
Combinaison des différentes techniques : Il existe plusieurs inconvénients à l'utilisation d'une seule
technique de géolocalisation
La dépendance au réseau GPS : l'incapacité de l'utiliser en intérieur et le temps de
réponse à l’allumage ;
La dépendance au réseau GSM : sa couverture géographique, l'accès au réseau
GPRS pour exploiter l’information ;
La dépendance à la présence de bornes d'accès Wi-Fi : en zone rurale par exemple;
Des dispositifs qui combinent ces trois techniques et qui sont capables de géolocaliser le
terminal dans n'importe quelle situation existent. La précision de ce positionnement va varier en
fonction des technologies disponibles, mais le temps de réponse à l'allumage et l'adaptabilité s'en
verront améliorées. Ceci permet par exemple de géolocaliser une personne à l'extérieur en utilisant
le GPS, et de garder sa trace à l'intérieur des bâtiments ou des tunnels en utilisant la technologie GSM
couplée au Wi-Fi pour plus de précision.
ANDRIANTSALAMA Tina Herimino 31
ANNEXE 2 : LE LANGAGE JAVA
Présentation du langage Java
JAVA est un langage moderne, orienté objet, développé par la société SUN. L’idée de
départ de java était de développer un langage avec lequel on puisse développer les logiciels pour
l’électronique grand public, tel que décodeur, PDA, CD-ROM, etc. Ses caractéristiques devaient être
la robustesse, la compatibilité, la facilité de programmation et la petite taille du code généré.
Les notions clés de la programmation Java
Comme Java est un langage orienté objet, il possède des notions similaires à celles
des autres langages comme C++, Small talk, etc.
La notion d’objet : en Java tout est objet. Les objets contiennent des comportements
ou méthodes et des attributs ou données.
La notion de classe : une classe permet de définir un type d’objet, éventuellement
compliqué, associant des données et des méthodes qui accèdent à ces données.
La notion d’héritage : l’idée principale consiste à définir une classe à partir d’une
autre. Ainsi est alors définit une classe fille qui hérite des méthodes et des attributs de la classe mère.
La particularité de Java est que la classe fille ne peut hériter que d’une seule classe mère.
La notion de polymorphisme : le polymorphisme est la qualité de certaines fonctions,
procédures ou classes de pouvoir s’appliquer à des paramètres de types divers dans la mesure où ces
types disposent de certaines opérations dont le profil est fixé et qui sont censées satisfaire certaines
propriétés.
La notion d’encapsulation : l’encapsulation consiste à cacher des données ou des
méthodes à vues d’autres classes.
La notion d’abstraction : le mécanisme des classes abstraites permet de définir des
comportements (méthodes) qui devront être implémentés dans les classes filles
Programme de base Java
public class HelloWorld{
public static void main(String[] args){
System. out.println("HelloWorld");
}
}
ANDRIANTSALAMA Tina Herimino 32
ANNEXE 3 : Extraits DE code
Pour la programmation des interfaces des layouts on a les lignes de code suivant : Fichier xml :
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:animateLayoutChanges="true" android:background="@drawable/stelite" android:gravity="center|clip_horizontal|top" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" > <TextView android:id="@+id/textView2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_marginBottom="26dp" android:text="@string/txt" android:textColor="#FF99FF" android:textSize="18sp" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/textView2" android:textColor="#FFFFFF" android:layout_centerHorizontal="true" android:text="QUITTER" /> <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:layout_centerHorizontal="true" android:textColor="#000000" android:layout_marginTop="22dp" android:ems="10" android:hint="Nom de l'utilisateur" /> <requestFocus /> </EditText>
</RelativeLayout>
ANDRIANTSALAMA Tina Herimino 33
ANNEXE 4 : HISTORIQUE DE LA VERSION ANDROID
Tableau IV : Historique de la version Android
Versions Dates de sortie Noms
1.0 23 Septembre 2008 Apple pie
1.1 09 Février 2009 Banana bread
1.5 30 avril 2009 Cupcake
1.6 15 septembre 2009 Donut
2.0 26 octobre 2009 Eclair
2.1 26 Janvier 2010 Eclair
2.2 20 mai 2010 Froyo
2.3 06 Décembre 2010 Gingerbread
3.0 20 Février 2011 Honeycomb
4.0 18 Octobre 2011 Ice Scream Sandwich
4.2 et 4.3 27 juillet 2013 Jellybean
4.4 31 octobre 2013 KitKat
5.0 17 Octobre 2014 Lollipop
6.0 05 Octobre 2015 Marshmallow
ANDRIANTSALAMA Tina Herimino 34
ANNEXE 5 : WampServeur
Après le téléchargement et l’installation du logiciel WampServeur, on ouvre un
navigateur FireFox puis on saisit sur la barre d’adresse URL l’adresse par défaut localhost:80(dans
notre cas, l’adresse du serveur est localhost:8080. L’adresse par défaut du serveur est représentée à
la Fig. A.2.
Figure A.2 : Adresse par défaut du Serveur
Figure A.3 : Interface du logiciel WampServeur dans le navigateur
ANDRIANTSALAMA Tina Herimino 35
Pour la création de la base de données on clique sur le menu phpmyadmin qui se trouve
dans l’outil. La Fig. A.4 montre le formulaire du serveur.
Figure A. 4 : Formulaire du serveur
Pour créer une base de donnée on utilise l’instruction CREATE DATABASE suivi du
nom de la base de donnée (CREATE DATABASE registreuser) et pour la création de table, on utilise
donnée on utilise l’instruction CREATE TABLE suivi du nom de la table à créer.
CREATE TABLE products(id int(11) primary key auto_increment,name varchar(100)
not null,imei varchar(10,2) not null,mdp text,created_at timestamp default now(),updated_at
timestamp);
ANDRIANTSALAMA Tina Herimino 36
Annexe 6 : JetBrains PhpStorm
Pour l’interaction entre le serveur, l’application et l’utilisateur, on utilise le langage PHP
et XML. Pour réaliser cette interaction on doit se rendre dans le dossier qui contient l’installation du
serveur dans C:\wamp puis on crée un nouveau dossier qui contient le projet, tous les fichiers .php et
.html seront enregistrer dans ce nouveau dossier. Pour la connexion entre la base de données et le
php, on crée un nouveau fichier php qui contient les lignes de code suivant :
<?php
define('DB_USER', "root"); // utilisateur de la base de donnée
define('DB_PASSWORD', ""); // mot de passe
define('DB_DATABASE', "registreuser"); // Nom de la base de donnée
define('DB_SERVER', "localhost"); // serveur de la base de la donnée
?>
Figure A.5 : Création d’un fichier php dans l’éditeur
ANDRIANTSALAMA Tina Herimino 37
REFERENCES
[1] T. Aimé, Guide pratique d'usage des logiciels libres dans les administrations, Creative-Commons,
2013
[2] https://fr.wikipedia.org/wiki/Logiciel, consulté le 27 Mars 2016
[3] P. M. Kuhn, L'informatique en France, de la seconde guerre mondiale au Plan Calcul,
L'émergence d'une science [archive], Paris, PUPS, 2010.
[4], http://www.cnrtl.fr/definition/logiciel « Logiciel - Trésor de la langue française informatisé »,
consulté le 26 Mars 2016
[5] « Enrichissement du vocabulaire de l'informatique. », Journal Officiel du 17 Janvier 1982, p.
50624.
[6] E. Fraboulet et F. Morin, « Les differents types de logiciel » sur http://info-acse.blogspot.com,
publié le 24 mars 2010, consulté le 28 Mars 2016
[7] https://fr.wikipedia.org/wiki/Logiciel_libre, consulté le 27 Mars 2016
[8] A. Strohmeier, Cycle de vie du logiciel, Laboratoire de Génie Logiciel - Département
d’Informatique, Ecole Polytechnique Fédérale de Lausanne, 13 Mars 2000
[9] B. W. BOEHM, Software Engineering Economics, Prentice-Hall, 1981
[10] W. W. Royce, Managing the Development of Large Software Systems. IEEE Wescon, 1970, p.
1-9
[11] J. McDermid et K. Ripken, Life cycle support in the ADA environment, University Press, 1984.
[12] B. W. Boehm, A Spiral Model of Software Development and Enhancement, IEEE Computer,
21, p. 61-72, 1988.
[13] https://fr.wikipedia.org/wiki/Android; consulté le 28 Mars 2016
[14] C. Gaglio, Android, Exposés informatique & réseau, 2008-2009, ingénieurs 2000
[15] E 330 Programmations système, Cours de L3, Mention Electronique, ESP Antananarivo, 2014-
2015.
ANDRIANTSALAMA Tina Herimino 38
[16] A. Lonjon, J. J. Thomasson, Modélisation XML, Editions Eyrolles, 61, bd Saint-Germain 75240
Paris Cedex 05, 2006
[17] D. Guignar, J. Chable et E. Robles, Programmation Android, Edition EYROLLES, 2010
[18] http://android.zeblogger.com/generalites/ ; consulté le 26 Mars 2016
[19] Z. Mednieks, L. Dornin, G.B. Meike, M. Nakamura, « Programming Android », First Edition
by O’Reilly, 2011
[20] M. Murphy, « L’art du développement Android », Edition Apress, 2009
[21] R. Raveaux, Cours Android Développement et API [p10], [p 42-83) ; (p110-114)
édition du 6 mars 2012
[22] Cyril Gaglio, Android, Exposés informatique & réseau, 2008-2009, ingénieurs 2000
[23] « Toute l’histoire et la chronologie d’Android » sur http://www.phonandroid.com/ , consulté le
26 Mars 2016
[24] N. Bendouralha, Introduction à la programmation sous Android, Developpez LLC, 12 Mai 2011
[25] https://fr.wikipedia.org/wiki/Geolocalisation, consulté le 28 Mars 2016
[26] www.atk.lu, la géolocalisation : le nouvel outil de gestion de votre entreprise, consulté le 29
Mars 2016
[27] Cours Licence Chimie-physique première année : GPS et localisation par satellite, T. Dudok de
Wit, Laboratoire de Physique et Chimie de l’Environnement (campus CNRS)
[28] https://fr.wikipedia.org/wiki/Global_Positioning_System , consulté le 28 Mars 2016
[29] N. Dewaele, Etat de l’art des systèmes de localisation, Mémoire d'examen probatoire en
informatique, Le Cnam : centre de Marne-la Vallée, 13 Mai 2001
Auteur : ANDRIANTSALAMA Tina Herimino
Titre : CONCEPTION ET REALISATION D’UN SYSTEME DE GEOLOCALISATION
ANDROID
Nombrede page : 38
Nombre de figures : 23
Nombre de tableaux : 04
RESUME :
Les techniques de localisation sont aujourd’hui très avancées grâce à l’évolution sans cesse de
la technologie. Nous proposons dans notre travail une technique de localisation à distance, par
l’utilisation d’une application sur un terminal Android. Le principe de ce travail repose sur
l’utilisation des ressources de localisation présentes dans un terminal Android, qui permettent
de récupérer les coordonnées en temps réel. Pour ce faire, nous avons installé et configuré
l’environnement de développement Android dans notre système d’exploitation. L’application
créée a permis d’afficher les coordonnées et d les transférer vers un serveur qui enregistre les
positions.
Mots clés : Géolocalisation, Android, Serveur
Directeur de mémoire : RANDRIAMAROSON Rivo Mahandrisoa
Contact de l’auteur
E-mail : [email protected]
Lot : II O 120 D Anjanahary
Tél : + 261 33 43 538 41