CONCEPTION ET RÉALISATION D’UN

51
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

Transcript of CONCEPTION ET RÉALISATION D’UN

Page 1: 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

Page 2: CONCEPTION ET RÉALISATION D’UN

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

Page 3: CONCEPTION ET RÉALISATION D’UN
Page 4: CONCEPTION ET RÉALISATION D’UN

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.

Page 5: CONCEPTION ET RÉALISATION D’UN

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.

Page 6: CONCEPTION ET RÉALISATION D’UN

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

Page 7: CONCEPTION ET RÉALISATION D’UN

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

Page 8: CONCEPTION ET RÉALISATION D’UN

v

ANNEXE 5 : WAMPSERVEUR ................................................................................................ 34

ANNEXE 6 : JETBRAINS PHPSTORM................................................................................... 36

REFERENCES ............................................................................................................................. 37

Page 9: CONCEPTION ET RÉALISATION D’UN

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

Page 10: CONCEPTION ET RÉALISATION D’UN

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

Page 11: CONCEPTION ET RÉALISATION D’UN

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

Page 12: CONCEPTION ET RÉALISATION D’UN

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

Page 13: CONCEPTION ET RÉALISATION D’UN

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.

Page 14: CONCEPTION ET RÉALISATION D’UN

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

Page 15: CONCEPTION ET RÉALISATION D’UN

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

Page 16: CONCEPTION ET RÉALISATION D’UN

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.

Page 17: CONCEPTION ET RÉALISATION D’UN

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.

Page 18: CONCEPTION ET RÉALISATION D’UN

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.

Page 19: CONCEPTION ET RÉALISATION D’UN

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

Page 20: CONCEPTION ET RÉALISATION D’UN

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

Page 21: CONCEPTION ET RÉALISATION D’UN

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

Page 22: CONCEPTION ET RÉALISATION D’UN

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.

Page 23: CONCEPTION ET RÉALISATION D’UN

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.

Page 24: CONCEPTION ET RÉALISATION D’UN

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.

Page 25: CONCEPTION ET RÉALISATION D’UN

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é

Page 26: CONCEPTION ET RÉALISATION D’UN

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

Page 27: CONCEPTION ET RÉALISATION D’UN

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

Page 28: CONCEPTION ET RÉALISATION D’UN

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.

Page 29: CONCEPTION ET RÉALISATION D’UN

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

Page 30: CONCEPTION ET RÉALISATION D’UN

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

Page 31: CONCEPTION ET RÉALISATION D’UN

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

Page 32: CONCEPTION ET RÉALISATION D’UN

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

Page 33: CONCEPTION ET RÉALISATION D’UN

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

Page 34: CONCEPTION ET RÉALISATION D’UN

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.

Page 35: CONCEPTION ET RÉALISATION D’UN

ANDRIANTSALAMA Tina Herimino 23

Figure 3.8 : Première interface de l’application Android

Figure 3.9 : Interface intermédiaire

Page 36: CONCEPTION ET RÉALISATION D’UN

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

Page 37: CONCEPTION ET RÉALISATION D’UN

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.

Page 38: CONCEPTION ET RÉALISATION D’UN

ANDRIANTSALAMA Tina Herimino 26

Figure 3.12 : Liste des coordonnées stockées dans le serveur

Page 39: CONCEPTION ET RÉALISATION D’UN

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.

Page 40: CONCEPTION ET RÉALISATION D’UN

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.

Page 41: CONCEPTION ET RÉALISATION D’UN

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

Page 42: CONCEPTION ET RÉALISATION D’UN

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.

Page 43: CONCEPTION ET RÉALISATION D’UN

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");

}

}

Page 44: CONCEPTION ET RÉALISATION D’UN

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&apos;utilisateur" /> <requestFocus /> </EditText>

</RelativeLayout>

Page 45: CONCEPTION ET RÉALISATION D’UN

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

Page 46: CONCEPTION ET RÉALISATION D’UN

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

Page 47: CONCEPTION ET RÉALISATION D’UN

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

Page 48: CONCEPTION ET RÉALISATION D’UN

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

Page 49: CONCEPTION ET RÉALISATION D’UN

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.

Page 50: CONCEPTION ET RÉALISATION D’UN

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

Page 51: CONCEPTION ET RÉALISATION D’UN

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