N° d’ordre : 01 / L3 / TCO Année Universitaire : 2011 / 2012
UNIVERSITE D’ANTANANARIVO
----------------------- ECOLE SUPERIEURE POLYTECHNIQUE
-----------------------
DEPARTEMENT TELECOMMUNICATION
MEMOIRE DE FIN D’ETUDES
en vue de l’obtention
du DIPLOME de LICENCE ès SCIENCES TECHNIQUES
Spécialité : Télécommunication
par : ANDIHARIJAONA J acques Faniriantsoa
MISE EN ŒUVRE DE SERVICE MOBILE
PERSONNEL SOUS SYSTEME ANDROID
Soutenu le 22 novembre 2013 devant la Commission d’Examen composée de :
Président :
M. ANDRIAMIASY Zidora
Examinateurs :
M. BOTO ANDRIANANDRASANA Jean Espérant
M. RANDRIAMIHAJARISON Mparany Jimmy
Mme. RAMAFIARISONA Malalatiana
Directeur de mémoire :
M. RANDRIARIJAONA Lucien Elino
i
REMERCIEMENTS
Avant tout, je glorifie l’éternel Dieu tout puissant de m’avoir soutenu durant la réalisation de cet
ouvrage.
Ensuite, je tiens aussi à remercier les personnes suivantes sans qui je n’aurai accompli l’étude que
j’ai suivie à l’E. S. P. A., parmi lesquelles :
Monsieur ANDRIANARY Philippe Antoine, Professeur titulaire, Directeur de l’Ecole
Supérieure Polytechnique d’Antananarivo ;
Monsieur RAKOTOMALALA Mamy Alain, Enseignant-Chercheur, Chef de Département
Télécommunication.
Je tiens à témoigner ma reconnaissance et ma gratitude les plus sincères à Monsieur
RANDRIARIJAONA Lucien Elino, Assistant d’Enseignement et de Recherche,
Enseignant-Chercheur à l’ESPA, qui, en tant que Directeur de ce mémoire, s'est toujours
montré à l'écoute et très disponible tout au long de sa réalisation.
Mes vifs remerciements s’adressent aussi à Monsieur ANDRIAMIASY Zidora, Maître de
conférences, qui nous a fait l’honneur de présider le jury de soutenance de ce mémoire,
Tous les membres de jury, également enseignants dans la filière Télécommunication, à savoir :
Monsieur BOTO ANDRIANANDRASANA Jean Espérant, Enseignant-Chercheur à
l’ESPA.
Monsieur RANDRIAMIHAJARISON Mparany Jimmy, Enseignant-Chercheur à l’ESPA.
Madame RAMAFIARISONA Malalatiana, Enseignant-Chercheur à l’ESPA.
Qui ont accepté de sacrifier leur temps pour assister à la présentation de ce mémoire ;
Tous les enseignants et tout le personnel de l’Ecole Supérieure Polytechnique
d’Antananarivo, en particulier ceux du département Télécommunications ;
A toute ma grande famille, mes amis, mes collègues et tous ceux qui de près ou de loin ont
contribué à la réalisation de ce travail ;
Je vous remercie tous et que le ciel vous donne tout le bonheur que vous souhaitiez.
ii
TABLE DES MATIERES
REMERCIEMENTS ...................................................................................................................................... i
TABLE DES MATIERES ............................................................................................................................ ii
NOTATIONS ET ABREVIATIONS ........................................................................................................... v
INTRODUCTION GENERALE .................................................................................................................. 1
CHAPITRE 1 LES RESEAUX SANS FILS ............................................................................................... 2
1.1 Introduction ......................................................................................................................................... 2
1.2 La propagation des ondes radios ....................................................................................................... 2
1.2.1 Les phénomènes à petite échelle .................................................................................................. 3
1.2.2 Les phénomènes à grande échelle ................................................................................................ 3
1.3 Les catégories de réseaux sans fils ..................................................................................................... 4
1.3.1 Le réseau personnel sans fil ......................................................................................................... 5
1.3.2 Le réseau local sans fil ................................................................................................................. 6
1.3.3 Le réseau métropolitain sans fil ................................................................................................... 6
1.3.4 Le réseau régional sans fil ........................................................................................................... 7
1.3.5 Le réseau étendu sans fil .............................................................................................................. 7
1.4 Les services dans les réseaux sans fils ............................................................................................... 8
1.4.1 La téléphonie ................................................................................................................................. 9
1.4.2 Les messageries ............................................................................................................................. 9
1.4.3 Autres services ............................................................................................................................ 10
1.5 Avantages et inconvénients des réseaux sans fils............................................................................ 10
1.5.1 Les avantages du réseau sans fil ................................................................................................ 10
1.5.2 Les inconvénients du réseau sans fil .......................................................................................... 11
1.6 Conclusion ......................................................................................................................................... 11
CHAPITRE 2 LA TECHNOLOGIE BLUETOOTH .............................................................................. 12
2.1 Introduction ....................................................................................................................................... 12
2.2 Cas d’utilisations ............................................................................................................................... 12
2.3 Les types de réseaux .......................................................................................................................... 13
2.3.1 Le pico-réseau ............................................................................................................................. 13
2.3.2 L’inter-réseau ............................................................................................................................. 14
iii
2.4 L’architecture de la technologie ...................................................................................................... 14
2.4.1 Les couches propres à Bluetooth ................................................................................................ 15
2.4.2 Les couches des protocoles adoptés ............................................................................................ 18
2.4.3 Le RFCOMM .............................................................................................................................. 18
2.4.4 Les couches des protocoles spéciaux .......................................................................................... 19
2.5 Gestion des communications ............................................................................................................ 19
2.5.1 Les différents types d’adresses .................................................................................................. 19
2.5.2 Format du paquet Bluetooth ...................................................................................................... 20
2.5.3 Illustration des communications ................................................................................................ 20
2.6 Caractéristiques ................................................................................................................................ 22
2.7 Conclusion ......................................................................................................................................... 22
CHAPITRE 3 LE SYSTEME ANDROID ................................................................................................ 23
3.1 Introduction ....................................................................................................................................... 23
3.2 Les Smartphones ............................................................................................................................... 23
3.3 Les versions d’Android ..................................................................................................................... 24
3.4 Architecture du système Android .................................................................................................... 24
3.5 Les caractéristiques d’Android ........................................................................................................ 26
3.5.1 Le framework .............................................................................................................................. 26
3.5.2 La machine Virtuelle de Dalvik DVM ....................................................................................... 26
3.5.3 Le graphisme ............................................................................................................................... 26
3.5.4 La base de données SQLite ......................................................................................................... 27
3.5.5 La disposition graphique maniable ............................................................................................ 27
3.5.6 Les connectivités ......................................................................................................................... 27
3.5.7 La messagerie .............................................................................................................................. 27
3.5.8 Le navigateur Web ...................................................................................................................... 27
3.5.9 Le multimédia ............................................................................................................................. 27
3.5.10 Les matériels ............................................................................................................................. 27
3.6 Le développement d’application ...................................................................................................... 28
3.6.1 La structure d’une application Android .................................................................................... 28
3.6.2 L’interface de programmation pour les interfaces utilisateurs ................................................. 29
iv
3.6.3 L’interface de programmation pour les graphismes et les animations ..................................... 30
3.6.4 L’interface de programmation pour le stockage de données .................................................... 31
3.6.5 L’interface de programmation pour les connectivités ............................................................... 32
3.6.6 L’interface de programmation pour le multimédia ................................................................... 36
3.6.7 L’interface de programmation pour la localisation et les capteurs .......................................... 37
3.7 Conclusion ......................................................................................................................................... 39
CHAPITRE 4 REALISATION D’UNE APPLICATION DE MESSAGERIE ..................................... 40
4.1 Introduction ....................................................................................................................................... 40
4.2 Le module d’extension ADT d’eclipse ............................................................................................. 40
4.3 Fonctionnement de l’ADT ................................................................................................................ 41
4.3.1 L’installation du module : .......................................................................................................... 41
4.3.2 L’espace de travail ...................................................................................................................... 41
4.4 Description de l’application de messagerie somesoBT .................................................................. 43
4.4.1 A propos de somesoBT ................................................................................................................ 43
4.4.2 Le fonctionnement de l’application ........................................................................................... 44
4.5 L’application réalisée ........................................................................................................................ 46
4.5.1 Présentation et illustration ......................................................................................................... 46
4.5.2 Contraintes pendant la réalisation ............................................................................................. 48
4.6 Conclusion ......................................................................................................................................... 48
CONCLUSION GENERALE .................................................................................................................... 49
ANNEXE 1 LE LANGAGE JAVA ............................................................................................................ 50
ANNEXE 2 EXTRAITS CODE SOURCE ................................................................................................ 51
BIBLIOGRAPHIE ...................................................................................................................................... 56
FICHE DE RENSEIGNEMENTS ............................................................................................................. 57
RESUME ...................................................................................................................................................... 58
ABSTRACT ................................................................................................................................................. 58
v
NOTATIONS ET ABREVIATIONS
Abréviations
AAC Advanced Audio Coding
ACL Asynchronous Conection-Less
ADT Android Developer tools
AGC Automatic Gain Controller
AM_ADDR Active Member Address
AMR Adaptive Multi Rate
AP Access Point
API Application Programming Interface
APK Android Packages
AR_ADDR Access Request Adress
BD_ADDR Bluetooth Device Address
CDMA Code Division Multiple Access
CD-ROM Compact Disc Read Only Memory
CTP Cordless Telephony Profile
DUNP Dial Up Networking Profile
Notations
B Champ magnétique
C célérité
D Distance en mètre
E Champ électrique
F Fréquence
P Perte de parcours en décibel
T Période
vi
DVB-H Digital Video Broadcasting
EDGE Enhanced Data GSM Environment
ETSI European Telecommunications Standard Institute
EVDO 1x Evolution-Data Optimized
FHSS Frequency Hopping Spread Spectrum
GAP Generic Access Profile
GFSK Gaussian Frequency Shift Keying
GIF Graphics Interchange Format
GOEP Generic Exchange Object Profile
GPRS General Packet Radio Service
GPS Global Positionning System
GSM Global System for Mobile communications
H. 264 MPEG-4 Advanced Video Coding
HomeRF Home Radio Frequency
HSDPA High Speed Downlink Packet Access
HSPA High Speed Packet Access
HSUPA High Speed Uplink Packet Access
HTML HyperText Markup Language
IDE Integrated Development Environnement
IEEE Institute of Electrical and Electronic Engineer
iOS Apple Operating System
IPC Inter-Process Communication
IrDA InfraRed Device Association
ISDB-T Integrated Services Digital Broadcasting - Terrestrial
ISM Industrie, Science et Médical
vii
JDK Java Development Kit
JPEG Joint Photographic Experts Group
L2CAP Logical Link Control & Adaptation Protocol
LAP LAN Access Profile
LMDS Local Multipoint Distribution Service
LTE Long Term Evolution
MAC Medium Access Control
MMDS Multichannel Multipoint Distribution Service
MMS Multimedia Message Service
MP3 MPEG-1/2 Audio Layer 3
MPEG-4 Moving Picture Experts Group 4
NFC Near Field Communication
OHA Open Handset Alliance
OpenGL ES Open Graphic Library for Embedded System
OS Operating System
P2P Peer to peer
PC Personal Computer
PDA Personal Digital Assistant
PM_ADDR Parked Member Address
PNG Portable Network Graphics
PPP Point to point protocol
PSK Phase Shift Keying
QoS Quality of Service
RF Radio Frequency
RFCOMM Radio Frequency Communication
viii
SCO Synchronous Connection-Oriented
SD Secure Digital
SDK Software Development Kit
SIP Session Initiation Protocol
SMS Short Message Service
SPP Serial Port Profile
SUN Stanford University Network
TCS-BIN Telephony Control protocol Specification BINary
TDD Time Division Duplexing
T-DMB Terrestrial Digital Multimedia Broadcasting
TIC Technologies de l’information et de la communication
UMTS Universal Mobile Telecommunications Systems
USB Universal Serial Bus
UWB Ultra Wide Band
VGA Video Graphics Array
VoIP Voice over Internet Protocol
WECA Wireless Ethernet Compatibility Alliance
WiMAX Worldwide Interoperability for Microwave Access
WLAN Wireless Local Area Network
WMAN Wireless Metropolitan Area Network
WPAN Wireless Personnal Area Network
WWAN Wireless Wide Area Network
XML eXtensible Markup Language
XMPP eXtensible Managing and Presence Protocol
1
INTRODUCTION GENERALE
Les progrès technologiques récents innovent la majorité des pays et affectent le mode de vie de
chaque individu.
Cet avancé concerne tant le monde de l’informatique que celui des télécommunications, tant les
matériels que les supports de transmission. Les moyens d’accès ont évolué, avec de nouveaux
réseaux tels que les réseaux sans fils GPRS, EDGE, UMTS, LTE, Wifi etc. Ces réseaux offrent des
services de plus en plus sophistiqués et performants.
L’apparition d’une grande variété de nouveaux moyens a permis aux utilisateurs d’accéder et
d’utiliser l’information qui les intéresse en tout lieu couvert par le réseau et à tout moment. L’accès
au contenu ne s’effectue plus exclusivement de la même façon ni par les mêmes appareils qu’il y a
quelques années. De nouveaux appareils, fruits d’une véritable révolution technologique, sont
apparu et sont connu de tous sous les noms : téléphones cellulaires, assistants numériques
personnels, Smartphones, etc.
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, qui est un produit de ce consortium intéresse
de plus en plus différents catégories de personnes depuis de simple utilisateurs à de géants
d’entreprises. L’ouverture de ce système d’exploitation crée de nouveaux horizons pour les
opérateurs de téléphonie mobiles, les commerçants, les fabricants d’appareils et voire même les
éditeurs de logiciel.
Une des raisons du choix de ce mémoire est de dresser un panorama des possibilités que le système
Android offre au domaine de la télécommunication sans fils.
Ainsi, ce mémoire intitulé : « Mise en œuvre de service mobile personnel sous le système Android»
portera sur quatre chapitres dont le premier présente le panorama des réseaux sans fils. Le second
chapitre traite de la technologie sans fils Bluetooth. Le troisième sera consacré à la présentation du
système Android et le quatrième décrit la réalisation d’une application de messagerie sur la
plateforme Android.
2
CHAPITRE 1
LES RESEAUX SANS FILS
1.1 Introduction
Un réseau sans fil est, comme son nom l'indique, un réseau dans lequel au moins deux terminaux
peuvent communiquer sans liaison filaire. Grâce aux réseaux sans fil, un utilisateur a la possibilité
de rester connecté tout en se déplaçant dans un périmètre géographique plus ou moins étendu, c'est
la raison pour laquelle on entend parfois parler de mobilité. Les réseaux sans fil sont basés sur une
liaison utilisant des ondes radioélectriques lieu et place des câbles habituels. Il existe plusieurs
technologies se distinguant d'une part par la fréquence d'émission utilisée ainsi que le débit et la
portée des transmissions. Les réseaux sans fil permettent de relier très facilement des équipements
distants d'une dizaine de mètres à quelques kilomètres. De plus l'installation de tels réseaux ne
demande pas de lourds aménagements des infrastructures existantes comme c'est le cas avec les
réseaux filaires, ce qui a valu un développement rapide de ce type de technologie.
En contrepartie se pose le problème de la réglementation relative aux transmissions radioélectriques.
En effet, les transmissions radioélectriques servent pour un grand nombre d'applications, mais sont
sensibles aux interférences, c'est la raison pour laquelle une réglementation est nécessaire dans
chaque pays afin de définir les plages de fréquence et les puissances auxquelles il est possible
d'émettre pour chaque catégorie d'utilisation. De plus les ondes hertziennes sont difficiles à confiner
dans une surface géographique restreinte, il est donc facile pour un pirate d'écouter le réseau si les
informations circulent en clair. Il est donc nécessaire de mettre en place les dispositions nécessaires
de telle manière à assurer une confidentialité des données circulant sur les réseaux sans fil.
Nous verrons dans ce chapitre les caractéristiques des ondes radios, les catégories de réseaux sans
fils, les services, les avantages et les inconvénients de ce type de réseaux.
1.2 La propagation des ondes radios
La connaissance des propriétés des ondes électromagnétiques facilite la mise en place d’une
architecture réseau sans fil, et notamment de disposer les bornes d’accès de telle façon à obtenir une
portée optimale.
En effet, l’onde électromagnétique est formée par le couplage des deux champs ci-dessous, le champ
électrique (E) et le champ magnétique (B). Grâce au schéma 1.02 nous pouvons nous rendre compte
que la fréquence est définie par la célérité et la longueur d’onde. [1]
3
Figure 1.02 : L’onde électromagnétique
1.2.1 Les phénomènes à petite échelle
Ce sont les phénomènes qui affectent le signal transmis sur un faible intervalle de temps. A petite
échelle, les évènements sont mesurés sur un intervalle de temps suffisamment court. On observe
que les variations de puissance sont causés par la présence d’objet dans l’environnement et qui
engendre plusieurs répliques du signal transmis. Elles peuvent s’additionner de manière constructive
ou destructive au niveau du récepteur, notamment en fonction de leur phase respective. Dans ce cas
on parle d’évanouissement ou fading du signal.
1.2.2 Les phénomènes à grande échelle
Ce sont les phénomènes qui influencent sur la transmission depuis l’émetteur jusqu’au récepteur et
durant l’intégralité de l’émission. En tenant compte de l’intégralité de la transmission, on rencontre
deux phénomènes qui affectent le signal à savoir :
L’atténuation de parcours
On l’appelle aussi Pathloss. Il concerne un affaiblissement du signal causé par une perte de
puissance qui est dû à la propagation en espace libre de l’onde électromagnétique. Cela s’explique
par la dispersion isotrope de l’énergie transmise selon les trois dimensions spatiales. L’atténuation
de parcours augmente avec la fréquence et la distance.
4
Ce pathloss est exprimé par la formule suivante :
𝑝 = 10 log(4𝜋𝑑
𝜆)2 (1.01)
Où
- d = distance parcourue (m)
- λ = Longueur d’onde (m)
La vitesse de propagation d’une onde électromagnétique est en tout point identique à la vitesse de
propagation de la lumière, i.e. 300000 km/s. On peut donc en déduire grâce à l’équation suivante,
la fréquence pour une transmission dans un milieu parfait : le vide.
𝜆 = 𝐶
𝐹 (1.02)
Où :
- F = Fréquence en Hz
- C = Célérité (m/s)
C correspond à la vitesse de propagation de l’onde et est variable selon le type du milieu traversé :
l’air, l’eau, un milieu boisé, etc.
Certains matériaux et milieux laisseront en effet plus facilement passer les ondes que d’autres.
L’effet de masque
L’effet de masquage ou shadowing est le second phénomène qui alterne la propagation et qui est dû
à la présence d’obstacle tel que les bâtiments ou les forêts entre l’émetteur et le récepteur. L’onde
électromagnétique traverse ces obstacles mais subit une atténuation de puissance en fonction de la
nature du milieu traversé.
1.3 Les catégories de réseaux sans fils
Les réseaux sans fils peuvent être classés selon leur portée et selon leur capacité en nombre à
interconnecter les utilisateurs. On distingue : les WPAN, les WLAN, les WRAN, les WMAN et les
WWAN. La figure 1.02 suivante résume illustre ces réseaux sans fil.
5
Figure 1.02 : Les catégories de réseaux
1.3.1 Le réseau personnel sans fil
Le réseau personnel sans fil, noté WPAN pour Wireless Personal Area Network, concerne les
réseaux sans fil d'une faible portée : de l'ordre de quelques dizaines mètres. Ce type de réseau sert
généralement à relier des périphériques ou un assistant personnel à un ordinateur sans liaison filaire
ou bien à permettre une liaison sans fil entre deux machines très peu distantes. Il existe plusieurs
technologies utilisées pour les WPAN :
Bluetooth a été lancé par Ericsson en 1994 et propose un débit théorique de 1 Mbps pour
une portée maximale d'une trentaine de mètres. Bluetooth, connue aussi sous le nom IEEE
802.15.1, possède l'avantage d'être très peu gourmande en énergie, ce qui la rend
particulièrement adaptée à une utilisation au sein de petits périphériques.
HomeRF (Home Radio Frequency) a été lancé en 1998 par le HomeRF Working Group et
propose un débit théorique de 10 Mbps avec une portée d'environ 50 à 100 mètres sans
amplificateur. La norme HomeRF soutenue notamment par Intel, a été abandonnée en
Janvier 2003, notamment car les fondeurs de processeurs misent désormais sur les
technologies Wi-Fi embarquée (via la technologie Centrino, embarquant au sein d'un même
composant un microprocesseur et un adaptateur Wi-Fi).
6
La technologie ZigBee : elle permet d'obtenir des liaisons sans fil à très bas prix et avec une
très faible consommation d'énergie, ce qui la rend particulièrement adaptée pour être
directement intégrée dans de petits appareils électroniques. La technologie ZigBee, opérant
sur la bande de fréquences des 2,4 GHz et sur 16 canaux, permet d'obtenir des débits pouvant
atteindre 250 Kbps avec une portée maximale de 100 mètres environ.
Les liaisons infrarouges permettent de créer des liaisons sans fil de quelques mètres avec des
débits pouvant monter à quelques mégabits par seconde. Cette technologie est largement
utilisée pour la domotique (télécommandes) mais souffre toutefois des perturbations dues
aux interférences lumineuses. L'association IrDA (infrared data association) prenant en
charge de la technologie a été formé en 1995 regroupe plus de 150 membres.
UWB (Ultra Wide Band) 802.15.3a : elle offre une connexion sans fil à très haut débit
atteignant 100 Mbps pour une distance de 15 m et 1,3 Gbps sur une portée de 1m. Elle
occupe une bande de fréquence supérieure à 500 MHz et utilise généralement les bandes de
fréquences de 3,1 à 10,6 GHz.
1.3.2 Le réseau local sans fil
Le réseau local sans fil, noté WLAN pour Wireless Local Area Network, est un réseau permettant
de couvrir l'équivalent d'un réseau local d'entreprise, soit une portée d'environ quelques centaines
de mètres. Il permet de relier entre eux les terminaux présents dans la zone de couverture. Il existe
plusieurs technologies concurrentes mais on cite principalement :
Le Wifi ou Wireless Fidelity soutenu par l'alliance WECA offre des débits allant jusqu'à 54
Mbps sur une distance de plusieurs centaines de mètres.
HiperLAN2 (HIgh Performance Radio LAN 2.0), norme européenne élaborée par l'ETSI.
Ce réseau permet d'obtenir un débit théorique de 54 Mbps sur une zone d'une centaine de
mètres dans la gamme de fréquence comprise entre 5 150 et 5 300 MHz.
1.3.3 Le réseau métropolitain sans fil
Le réseau métropolitain sans fil, WMAN pour Wireless Metropolitan Area Network, est un réseau
utilisé dans les campus ou dans les villes c’est-à-dire dans un rayon de quelques dizaines de
kilomètres. C’est un type de boucle local radio qui permet une liaison sans fil. Il regroupe également
7
les technologies permettant à un particulier ou une entreprise de s’interconnecter via les ondes
radios. Parmi ces technologies, on peut citer :
LMDS (Local Multipoint Distribution Service) : technique d’accès large bande par onde
radio qui utilise les fréquences situés entre 26 GHz et 29 GHz. Il est principalement destiné
à des utilisations de type point à multipoint ou de liaisons point à point sur des distances
pouvant atteindre 8 km.
MMDS (Multichannel Multipoint Distribution Service) : c’est un système de diffusion de la
télévision par un émetteur terrestre qui fonctionne dans la bande de fréquences de 2,5 et 3,5
GHz. Les signaux sont analogiques en modulation de fréquence ou en modulation
d’amplitude.
Wimax (Worldwide Interoperability for Microwave Access) : ce standard utilise une bande
de fréquence de 2 à 11 GHz et permet un débit de 70 Mbps sur un rayon de 50 km maximum.
La norme Wimax mobile devrait permettre des services comme la communication VoIP sur
téléphones portables ou encore l’accès à des services mobiles à haut débit.
1.3.4 Le réseau régional sans fil
Les réseaux régionaux sans fils font l’objet de la norme IEEE 802.22. Ils occupent les fréquences
de la bande réservée à la diffusion de la télévision interactive comprise entre 54 MHz et 862 MHz.
L’originalité de ces réseaux porte sur la capacité de ses équipements à utiliser de façons dynamiques
les bandes de fréquences inoccupées. La vitesse de transmission atteint 18 Mbps sur des canaux de
6 MHz. Cette technologie utilise l’OFDM et assure la qualité de service au niveau de la couche
MAC. La portée peut atteindre une cinquantaine de km et un point d’accès peut interconnecter
30000 utilisateurs.
1.3.5 Le réseau étendu sans fil
Le réseau étendu sans fil ou WWAN pour Wireless Wide Area Network est également connu sous
le nom de réseau cellulaire mobile. Il s'agit des réseaux sans fil les plus répandus puisque tous les
téléphones mobiles sont connectés à un réseau étendu sans fil. Les principales technologies sont les
suivantes :
8
Le GSM ou Global System for Mobile Communication : c’est la première norme de
téléphonie mobile qui soit pleinement numérique, c’est une référence mondiale en matière
de téléphonie mobile. [2]
Le GPRS ou General Packet Radio Service : il s’agit d’une norme de la téléphonie mobile
dérivée du GSM permettant un débit de données plus élevé. On la qualifie souvent de 2,5G
pour indiquer que c’est une technologie à mi-chemin entre le GSM (2me génération) et
l’UMTS (3me génération). La transmission par paquets est la technique utilisée par le GPRS
à la différence du GSM. Cette méthode est plus adaptée à la transmission des données et le
débit théorique maximal est de 170 Kbps.
L’EDGE ou Enhanced Data for GSM Evolution : c’est une norme de téléphonie mobile
considérée comme la pré-3G. Le standard vise à optimiser la partie radio de ses
prédécesseurs en matière de données afin d’augmenter les débits principalement en voie
descendante. [3]
L’UMTS ou Universal Mobile Telecommunication Service : c’est la troisième génération
des systèmes de télécommunication mobiles suite à l’évolution du GSM, du GPRS et de
l’EDGE. Il est destiné à fournir une mobilité globale avec toute une gamme de services
jamais offertes ou sous-exploités par ses prédécesseurs.
Le HSPA ou High Speed Packet Access : ce standard regroupe deux normes à savoir le
HSDPA et le HSUPA. Le HSDPA a un débit plus important en voie descendante allant
jusqu’à 7,2 Mbps tandis que le HSUPA met en phase le débit en voie montante allant jusqu’à
4 Mbps.
Le 4G : c’est la quatrième génération de réseau de téléphonie mobile. L’architecture de cette
nouvelle génération est basée sur le protocole IP. Les communications sont gérées via
l’échange de datagrammes IP quel que soit le type d’information en provenance des mobiles.
1.4 Les services dans les réseaux sans fils
Divers services sont offerts aux utilisateurs de réseaux sans fil. On peut identifier plusieurs
catégories : la téléphonie, la messagerie, les services multimédia, etc. On citera dans la suite
quelques exemples de service utilisé fréquemment par les connectés.
9
1.4.1 La téléphonie
La téléphonie est une forme de télécommunication essentiellement destinée à l’échange
d’information sous forme de parole. On distingue actuellement deux types de téléphonie : la
téléphonie classique et la téléphonie sur IP
La téléphonie classique
C’est le service traditionnel utilisé par la plupart des utilisateurs des réseaux WWAN. Il est basé sur
la transformation du signal acoustique en signal électrique, de la transmission et puis de la
conversion de nouveau en signal acoustique.
La téléphonie sur IP
C’est un service basé sur la technique VoIP ou Voice over Internet Protocol. En effet la téléphonie
sur IP permet de transmettre des communications vocales au travers de réseaux régis par le protocole
IP (Internet Protocol). Ces réseaux peuvent être privés ou publiques. [4]
1.4.2 Les messageries
Le service d’échange de messages courts
Plutôt connu sous le nom de SMS, ce service permet l’échange de messages courts entre une station
mobile et un système sans fil, ou entre un système sans fil et un dispositif externe capable de
transmettre ou de recevoir des messages courts.
Le service d’échange de messages multimédia
Connu sous le nom de MMS ou Multimédia Message Service, ce service est le successeur
multimédia du SMS. Il peut transporter, non seulement du texte mais aussi des images, de la
musique et des vidéos.
Les courriers électroniques
L’accès au service mail ou courrier électronique a été rendu possible à partir d’un terminal sans fil
grâce à la connexion à Internet. Il est désormais possible de consulter ses mails et d’en envoyer
avec l’option de mobilité.
10
Les messageries instantanées
Ce service est souvent utilisé par les personnes connecté à internet. A la différence des mails, la
discussion se fait en temps réel et permet un dialogue interactif. D’autres désignations sont utilisées
comme : le dialogue en ligne, le clavardage ou le chat.
1.4.3 Autres services
La télévision mobile
Ce service permet de regarder la télévision à partir d’un terminal mobile. Les standards exploités
pour la télévision mobile dans le monde sont multiples à savoir : ISDB-T, T-DMB, DVB-H, etc. La
transmission se fait soit par diffusion soit par connexion via un réseau sans fil comme le Wimax.
[10]
La visiophonie
La visiophonie est l’association de la téléphonie et de la télévision. Grâce à ce type de service les
correspondants peuvent se voir pendant leur conversation téléphonique. Il est alors question de
transmission de vidéos en temps réels. Ce type de service nécessite donc une bonne qualité de
transmission.
Le téléchargement
Ce service est très utilisé par les personnes qui ont accès à Internet. Il permet le téléchargement
d’images, de musiques, de vidéos et tout type de fichiers.
1.5 Avantages et inconvénients des réseaux sans fils
1.5.1 Les avantages du réseau sans fil
Coût financier
Le réseau sans fil permet d’éviter l’obligation d’un câblage coûteux qui peut se révéler rapidement
obsolète ou inutile en cas de déménagements de locaux.
11
Facilité et flexibilité
La facilité et la flexibilité des réseaux sans fil sont observées dans le contexte d’un réseau
temporaire, pour des formations, des expositions ou autre chantiers, pour couvrir des zones difficiles
d’accès aux câbles, et relier des locaux distants.
Mobilité
Une situation avec laquelle on profite de la mobilité est pendant une réunion où tous les participants
sont automatiquement interconnectés. On économise ainsi le temps sans avoir à relier chaque
personne avec des fils encombrants.
1.5.2 Les inconvénients du réseau sans fil
Qualité de communication
Ce critère est fonction de l’environnement et des matériels utilisés dans les réseaux. Des
interférences peuvent être générées par ces deux paramètres et ne sont pas généralement maîtrisés.
Sécurité
Les données échangées sont transmises par voie aérienne et couvrent de grandes distances dans le
cadre d’une liaison hertzienne donc il est possible en théorie de récupérer ses données même si
celles-ci sont cryptées et confidentielles.
1.6 Conclusion
Ce chapitre nous a permis de faire le panorama des différentes catégories de systèmes
radioélectriques utilisés dans les réseaux. Ceci nous a permis de classer les réseaux sans fil selon
leur portée et leur utilisation. On a pu voir les caractéristiques des ondes radioélectriques et les
phénomènes qui influencent la transmission de ces ondes. Il est mieux de connaître ces phénomènes
pour bien optimiser la portée des réseaux sans fils. Les réseaux à faible portée sont d’autant plus
utilisés actuellement et nous aborderons dans le chapitre suivant la technologie sans fil Bluetooth.
12
CHAPITRE 2
LA TECHNOLOGIE BLUETOOTH
2.1 Introduction
Bluetooth une technologie de réseau personnel sans fil, c’est-à-dire une technologie de réseaux sans
fil à faible portée. Elle permet de relier plusieurs appareils entre eux sans liaison filaire, en utilisant
les ondes radio comme support de transmission sur la bande de fréquence des 2,4 GHz.
Historiquement, cette technologie est une évolution sans fil de l’USB qui permet de relier plusieurs
périphériques en série. Afin de comprendre Bluetooth, nous allons en premier lieu aborder quelques
généralités, puis nous verrons les différents types de réseaux. Par la suite, on développera
l’architecture de la technologie, la gestion des communications et les caractéristiques. Nous
conclurons enfin sur les limitations de Bluetooth.
2.2 Cas d’utilisations
Bluetooth est aujourd’hui utilisé dans de nombreux secteurs dont quelques exemples sont décrits
dans la suite :
Périphériques informatiques sans fils : il est actuellement possible d’interconnecter les
périphériques d’ordinateur sans la liaison filaire en utilisant la technologie Bluetooth. Les
matériels concernés sont : le clavier, la souris, les imprimantes, les scanners, les haut-
parleurs, etc.
Pont internet : un téléphone cellulaire connecté à un ordinateur via Bluetooth peut être utilisé
comme pont vers Internet.
Automobile : l’application la plus parlante en automobile est le récepteur GPS Bluetooth.
Associé à un Pocket PC et à un logiciel de navigation, cet ensemble permet d’équiper son
véhicule d’un système de guidage GPS.
Domotique : la domotique permet de piloter les équipements d’une maison via un ordinateur.
Il est par exemple possible de gérer le chauffage électrique, le lave-linge, le lave-vaisselle,
l’arrosage automatique, etc. Bluetooth peut ainsi être utilisé dans ce domaine afin de
minimiser le câblage. [5]
13
Figure 2.01 : Utilisation de la technologie
2.3 Les types de réseaux
2.3.1 Le pico-réseau
C’est un réseau qui se crée de manière instantanée et automatique quand plusieurs périphériques
Bluetooth sont dans un même rayon. Un pico-réseau est organisé selon une topologie en étoile : il
y a un maître et plusieurs esclaves.
En effet, un périphérique maître peut administrer jusqu’à 7 esclaves actifs et 255 esclaves en veille.
La communication est directe entre le maître et un esclave, et les esclaves ne peuvent pas
communiquer entre eux. Tous les esclaves du pico-réseau sont synchronisés sur l’horloge du maître
et c’est ce dernier qui gère les sauts de fréquence pour tout le pico-réseau. [5][6][7]
Figure 2.02 : Pico-réseau
14
2.3.2 L’inter-réseau
Les inter-réseaux ou scatternets sont en fait des interconnexions de piconets (Scatter = dispersion).
Ces interconnexions sont possibles car un périphérique esclave peut avoir plusieurs maîtres. En
tenant compte de cette possibilité, les différents piconets peuvent donc être reliés entre eux par
l’intermédiaire d’un esclave. [5][6][7]
Figure 2.03 : L’inter-réseau Bluetooth
2.4 L’architecture de la technologie
La figure 2.04 suivante illustre la pile caractéristique de la technologie Bluetooth. On peut observer,
depuis la partie basse la pile, les couches bas niveau propres à la technologie, la couche de
transmission simple de données, les couches de communication avec la téléphonie, les couches des
protocoles adoptés et les couches des applications de haut niveau.
15
Figure 2.04 : Architecture de la technologie Bluetooth
2.4.1 Les couches propres à Bluetooth
La couche Radio
Cette couche opère dans la bande ISM autour de 2.4 GHz et utilise l’étalement de spectre comme
type de communication. La bande s’étend de 2400 à 2483.5 Mhz dans la majorité des pays pour
optimiser l’étalement de spectre. Cette bande est divisée en canaux de 1 Mhz soit 79 canaux au total.
Pour transmettre des données, la technologie Bluetooth utilise le FHSS (Frequency Hopping Spread
Spectrum). Puisqu’on travaille dans une bande de fréquence libre, d’autres technologies peuvent
causer des interférences, on utilise alors de petits paquets de données et des sauts de fréquence
rapides. En effet, le principe du FHSS est la commutation rapide entre plusieurs canaux de
fréquence, utilisant un ordre pseudo aléatoire connu tant à l'émetteur qu'au récepteur pour la
synchronisation.
L’utilisation de FHSS dans Bluetooth permet :
Une synchronisation parfaite entre l’émetteur et le récepteur car ils sont obligés d’utiliser la
même séquence de sauts pour communiquer.
D’émettre à plusieurs simultanément.
De limiter les interférences.
Le débit nominal de saut est de 1600 sauts par seconde c’est-à-dire 625 µs par slot de
communication. La modulation utilisée est le GFSK acronyme de Gaussian Frequency Shift Keying.
16
La couche bande de base
La couche bande de base contrôle la couche radio. Les sauts de fréquences sont gérés par cette
couche. Cette couche prend en charge aussi de la sécurité dans les mécanismes bas niveau. Tous les
paquets qui circulent dans les réseaux Bluetooth est en provenance de la couche bande de base. La
couche bande de base peut gérer deux types liaisons : le SCO et le ACL
SCO ou Synchronous Connection Oriented : ce type de connexion permet une transmission
bidirectionnelle. Une connexion SCO fonctionne en temps réel, c'est-à-dire qu’il n’y a pas
de retransmission possible. C’est ce type de connexion qui est utilisé pour la transmission
de la voix. Bluetooth utilise dans ce cas des créneaux réservés afin de réduire au maximum
le délai. Il est alors possible d’atteindre un débit de 64Kbps, sachant qu’un maître peut gérer
jusqu’à 3 liens de ce type.
ACL ou Asynchonous Connection Less : C’est ce type de connexion est utilisé pour
l’échange de données. Avec les connexions ACL, il est possible d’effectuer un multicast et
d’obtenir des débits de 723.2 Kbps en sortie et un débit de 57.6 Kbps en entrée.
La couche bande de base fournit aux appareils les fonctionnalités nécessaire pour synchroniser leurs
horloges et établir des connexions. Les procédures de découvertes des adresses des appareils sont
aussi gérées par cette couche.
La couche Link Manager Protocol
Les rôles principaux de la couche LMP (protocole de gestion des liaisons) sont :
Gestion des réseaux
Configuration des liaisons
Sécurité
Le LMP fournit la fonctionnalité d’attacher et de détacher les esclaves, d’intervertir les rôles entre
les esclaves et les maîtres et d’établir les liaisons soit SCO soit ACL. Cette couche gère aussi la
gestion d’énergie surtout lorsque l’appareil n’a aucune donnée à transférer.
La configuration des liaisons inclue le paramétrage, la qualité de service et la gestion de la puissance
d’émission selon les caractéristiques de l’appareil.
17
L’authentification des terminaux dans les liaisons et la gestion des clés de cryptage sont aussi pris
en charge par la couche LMP.
La couche de contrôle des liens logiques et protocoles d’adaptation
C’est la couche avec laquelle la plupart des applications interagissent avant l’intervention d’un
contrôleur d’hôtes. Cette couche définit le multiplexeur de service et de protocole, appelé en anglais
PSM (Protocol and Service Multiplexer), pour chaque type d’utilisation.
Les principales fonctions de cette couche sont :
Multiplexage : ce protocole permet aux diverses applications d’utiliser la liaison entre deux
appareils simultanément.
Segmentation et réassemblage : ce protocole réduit la taille des paquets en provenance de
divers applications selon la taille de paquets supportée par la couche bande de base. Elle
effectue aussi l’opération inverse c’est-à-dire la reconstitution des paquets.
Qualité de service : L2CAP permet aux applications de faire des requêtes de qualité de
service comme la largeur de bande, le temps de latence et la variation des durées de
communication. Il est dans ses rôles de vérifier si les liaisons établies supportent cette
fonctionnalité et de les mettre en œuvre si c’est possible.
La couche de protocole de découverte de service
Le SDP, Service Discovery Protocol, est une base de données disponible dans les périphériques
Bluetooth (pas tous, ceci n’est pas obligatoire) à l’intérieure de laquelle on trouve tous les détails
concernant le périphérique, ses fonctions et comment s’y connecter. Cette base de données contient
une liste de services et à chaque service sont attribuées des informations de configuration et de
connexion. Lorsqu’un périphérique fait une recherche sur le réseau, il peut effectuer une requête
SDP sur les périphériques à découverts pour examiner si ceux-ci sont compatibles avec la fonction
désirée (téléphonie, imprimante, échange de données...). Il est important de noter qu’une découverte
SDP se fait au-dessus d’une connexion L2CAP, via le PSM 1. Cela signifie qu’une connexion
L2CAP supplémentaire est nécessaire pour découvrir les services disponibles. Celle-ci sera suivie
d’une autre connexion L2CAP, cette fois-ci sur le PSM adéquat.
18
2.4.2 Les couches des protocoles adoptés
OBEX
OBEX ou échange d’objet est adopté d'IrDA. C'est un protocole de session qui fournit des moyens
pour le transfert simple et spontané d'objet et de données. Il est indépendant du mécanisme de
transport et de l'interface de programmation d'application de transport (API).
TCP\UDP\IP
Ces protocoles sont définis pour fonctionner dans les unités Bluetooth leur permettant de
communiquer avec d'autres unités reliées, par exemple, à Internet. La configuration du protocole
TCP/IP/PPP est employée pour tous les scénarios d'utilisation de pont d'Internet dans Bluetooth 1.0
et pour OBEX dans les futures versions. La configuration UDP/IP/PPP est disponible en tant que
transport pour WAP.
PPP
PPP dans la technologie Bluetooth, est conçue pour accomplir les connexions point par point. PPP
est un protocole orienté paquet et doit donc employer ses mécanismes de série pour convertir le flux
de données de paquets en flux de données série.
2.4.3 Le RFCOMM
Le service RFCOMM acronyme de Radio Frequency Communication est bien particulier et apparaît
souvent lors du développement de logiciel Bluetooth. Il s’agit en fait simplement d’une émulation
de connexion série RS232. Une fois une connexion RFCOMM ouverte, on dispose de 60 ports séries
au maximum via lesquels on peut directement communiquer comme si les périphériques étaient
câblés à l’aide d’une liaison série. Ce service est donc très utile pour fournir un mode bypass, c’est-
à-dire un mode qui est transparent et qui permet de communiquer comme s’il n’y avait pas de
Bluetooth mais juste un câble (ou plutôt, 60 câbles). Il est important de remarquer que malgré ces
connexions séries, celles-ci ne permettent pas de communiquer en série avec la puce Bluetooth mais
uniquement avec le périphérique distant.
19
2.4.4 Les couches des protocoles spéciaux
Le TCS BIN
TCS BIN ou Telephony Control protocol Specification BINary est un protocole permettant de
communiquer avec des outils de téléphonie, type téléphone portable par exemple, possédant la
technologie Bluetooth. Il permet de transmettre de la voix (via la passerelle Audio) et des données.
Le AT commands
La couche AT-Commands sert à communiquer avec des appareils de type modem, téléphones
mobile acceptant les commandes AT et les FAX (compatibilité avec plusieurs classes). Cette
couche communique avec la couche inférieure (RFCOMM).
2.5 Gestion des communications
2.5.1 Les différents types d’adresses
Les adresses des dispositifs sont classées en 4 parties :
DBA ou DB_ADDR : Bluetooth Adresse Device est une adresse unique pour chaque
équipement Bluetooth. C’est l’équivalent de l’adresse MAC d’une carte réseau. Cette
adresse est écrit en hexadécimal et sa forme est comme suit :
2E : 02 : 1A : 06 : 66 : 12
AMA ou AM_ADDR : Active Member Address est l’adresse d’un esclave dans le piconet.
Elle est codée sur 3 bits dont 000 est réservée pour le broadcast. Il peut avoir 7 esclaves au
maximum dans un piconet.
PMA ou PM_ADDR : Parked Member Address est l’adresse d’un esclave lorsqu’il se trouve
à l’état parqué ou en veille. Elle est codée sur 8 bits, donc il ne peut y avoir que 255 esclaves
parqués au maximum.
ARA ou AR_ADDR : Access Request Adress est l’adresse de demande d’accès utilisé par
les esclaves parqués. Cette adresse n’est pas nécessairement unique.
20
2.5.2 Format du paquet Bluetooth
Le paquet Bluetooth est composé de 3 parties comme l’indique la figure suivante :
Figure 2.05 : Format du paquet Bluetooth
Le code d’accès ou Access Code : chaque paquet débute par un code d’accès composé du
code de canal ou CAC (Chanel Access Code) propre à un piconet, du code de composant ou
DAC (Device Access Code) utilisé pour le paging et du code de recherche ou IAC (Inquiry
Access Code) si le maître recherche d’autres équipements Bluetooth du piconet.
L’entête ou header : ce champ contient dans l’ordre l’adresse de l’esclave (codée sur 3 bits,
soit 7 au maximum) qui échange des données, le type de paquet et des bits de contrôle
(erreurs, buffer de réception …)
Les données binaires ou payload : la taille de cette partie est variable en fonction du nombre
de time slots.
2.5.3 Illustration des communications
Bluetooth peut utiliser des paquets de données courts (1 time slot, 240 bits au maximum), moyens
(3 time slot, 1480 bits au maximum) ou longs (5 time slot, 2745 bits au maximum) [4] [6]
Figure 2.06 : Illustration des communications
21
Communication à slot simple
Le canal de communication est divisé en time slots numérotés d’une durée de 625μs chacun. Le
TDD (Time Division Duplex) est utilisé pendant la transmission, c’est à dire que les unités
maîtresses et esclave transmettent alternativement. En réalité, une unité maîtresse transmet dans les
slots pairs et les unités esclaves dans les slots impairs.
Figure 2.07 : Communication single-slot
Communication à slots multiples
Lorsqu’un paquet a une taille de 1 slot on parle de transmission/réception simple slot, et lorsqu’un
paquet possède une taille supérieure à 1 time slot (3 ou 5 slots), on parle de slot multiple. Le saut de
fréquence appliqué au paquet est celui du premier slot de ce paquet.
Figure 2.08 : Communication à slot multiple
22
2.6 Caractéristiques
- Fréquence d’émission : 2.4 GHz à 2.4835 GHz
- Largeur du canal d’émission : 83,5 MHz
- Type de modulation : GFSK (Gaussian Frequency Shift Keying), PSK 4, PSK 8 (Phase Shift
Keying)
- Puissance d’émission : 1 mW à 100 mW
- Portée : dizaine de mètre
- Technique émission/réception : TDD (Time Division Duplexing)
- Débit théorique: 723 Kbps
- Nombre de canaux : 79
- Largeur des canaux radios : 1 MHz
2.7 Conclusion
Ce chapitre a été consacré à la technologie Bluetooth qui est souvent comparé au wifi et à d’autres
technologies du même type. Grâce à son faible coût, sa faible consommation, sa taille réduite, sa
disponibilité internationale, sa bonne résistance aux interférences, elle convient bien aux
applications qu’on lui a confiées. Cette technologie à usage personnel opère dans le transfert de
données, l’accès à un réseau de données, la téléphonie, etc. Elle permet l’émission point à point
mais permet aussi l’émission point à multipoint. Cependant Bluetooth a des limites et les principaux
reproches sont les problèmes de compatibilité entre les produits de différents constructeurs, le débit
faible et le nombre de périphériques en réseau limité. Même si cette technologie ne fonctionne pas
en haut débit, les appareils électroniques récents intègre ce type de connectivité. Le chapitre suivant
sera consacré à la nouvelle technologie Android.
23
CHAPITRE 3
LE SYSTEME ANDROID
3.1 Introduction
Aujourd’hui, la convergence des technologies a transformé ce qui était autrefois un simple téléphone
portable en un véritable ordinateur de poche. Ce que dans nos poches nous appelons un Smartphone
ou « ordiphone » mérite bien son nom. Tout d’abord, pour son usage traditionnel, que ce soit pour
jouer, consulter ses mails ou encore surfer sur le web. Il est présent physiquement avec nous toute
la journée, il suit nos discussions, nos habitudes… Du point de vue conception aussi, puis qu’ils
mettent maintenant à profit des processeurs qui sont présent jusque dans les netbooks. Ils disposent
même d’un véritable système d’exploitation en lieu et place du firmware, derrière lequel se cache
souvent Linux. C’est dans cet univers là qu’est sorti en 2008 Android, un système d’exploitation
libre basé sur Linux, pour équiper nos Smartphones. Son code source ouvert et la disponibilité de
téléphones librement utilisables lui ont valu un succès rapide parmi les développeurs.
Développé par Google puis l’Open Handset Alliance, Android est un système d’exploitation pour
les appareils mobiles.Sa naissance a fait des vagues dans le monde des dispositifs sans fils comme
les PDA, les smartphones, les téléviseurs et les tablettes. Ce chapitre est dédié au système
d’exploitation pour mobile appelé Android.
3.2 Les Smartphones
Le smartphone est un téléphone mobile intelligent qui intègre les fonctions d’assistant personnel et
multimédia. L’utilisateur n’est plus limité aux envois de sms et aux appels mais peut accéder à
d’autres services. Ces services s’ouvrent dans l’échange d’e-mails, la gestion d’agenda, les
messageries instantanées, la prise de photo, les vidéos, la musique, l’accès à Internet, le GPS, etc.
Actuellement, il existe plusieurs systèmes d’exploitation qui intègrent les smartphones à savoir :
Symbian, BlackBerry, iOS, Windows Mobile, MeeGo, Bada, WebOS et Android. Ces Systèmes
d’exploitation pour mobile sont concurrents et d’autres systèmes basés sur linux comme Android
en font partie à savoir : LiMo et OpenMoko. [16]
Pour voir comment ces téléphones intelligents innovent le marché, voici un tableau qui illustre les
ventes de ces produits depuis 2009 à 2011 tirés de wikipédia :
24
2011 2010 2009
Système
d’exploitation
Unité Part du
marché
Unité Part du
marché
Unité Part du
marché
Symbian 27 598 500 27,4 % 25 386 800 41,2 % 20 880 800 51,0 %
iOS 16 883 200 16,8 % 8 743 000 14,2 % 5 325 000 13,0 %
Android 36 267 800 36,0 % 10 606 100 17,2 % 755 900 1,8 %
Tableau 3.01: Les parts de marché des Smartphones
Le tableau 3.01 précédent nous montre que le système Android a pris une grande partie du marché
depuis l’année 2011.
3.3 Les versions d’Android
Depuis la sortie de sa première version en septembre 2008, c’est-à-dire la version 1.0, Android a
connu plusieurs mises à jour. Ces mises à jour servent généralement à supprimer les bugs et à
ajouter de nouvelles fonctionnalités. La sortie des différentes versions a suivi les étapes suivantes :
[9]
Version Date de sortie Nom
1.5 30 avril 2009 Cupcake
1.6 15 septembre 2009 Donut
2.0 et 2.1 26 Octobre 2009 Éclair
2.2 20 mai 2010 Froyo
2.3 Décembre 2010 Gingerbread
3.0 Février 2011 Honeycomb
4.0 Octobre 2011 Ice Scream Sandwich
4.2 et 4.3 27 juillet 2013 Jellybean
4.4 31 Octobre 2013 KitKat
Tableau 3.02: Les versions d’Android
3.4 Architecture du système Android
Le système d’exploitation Android est constitué de différentes couches. Pour comprendre comment
ce système est-il constitué, on se focalisera sur les différentes entités présentées à la figure 3.03 ci-
après : [10] [11]
25
Figure 3.01 : Architecture du système Android
Android est subdivisé en cinq sections incluses dans quatre couches principales :
Le noyau linux (Linux Kernel) : c’est le noyau avec lequel Android a été conçu. Cette couche
contient les pilotes de périphériques bas niveau pour les composants matériels d’un
dispositif Android. On peut citer comme pilotes : le pilote d’affichage, le pilote de camera,
le pilote Wifi, le pilote de clavier, le pilote de gestion d’énergie, le pilote audio, le pilote de
mémoire flash et le pilote IPC
Les bibliothèques (Libraries) : cette section contient tout le code qui fournit les principales
fonctionnalités d’Android. Par exemple, la bibliothèque SQLite fournit un support de base
de données qu’une application peut utiliser pour stocker ses données.
L’environnement d’exécution (Android Runtime) : sur la même couche que les
bibliothèques, l’environnement d’exécution fournit plusieurs bibliothèques permettant aux
développeurs d’écrire des applications Android avec le langage de programmation Java.
26
C’est cette section qui prend en charge la machine virtuelle Dalvik permettant aux
différentes applications de s’exécuter avec sa propre instance DVM et son propre processus.
Le framework d’application (Application Framework) : cette section expose les différentes
capacités du système au développeur d’application.
La couche application : c’est la couche supérieure ou sont vue les différentes applications
natives du système (comme le navigateur web, l’agenda, le programme permettant
d’envoyer des SMS, le répertoire, etc.), et aussi les applications téléchargées ultérieurement.
Les applications qui sont développées par des particuliers sont localisées sur cette couche.
3.5 Les 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.
Parmi ces fonctionnalités : [12] [13] [14]
3.5.1 Le framework
Il est employé pour écrire des applications Android. A la différence d’autres environnements
mobiles embarqués, les applications Android sont toutes égales. Les applications qui viennent avec
le téléphone n’ont aucune structure différente de ceux que n’importe quel autre développeur écrit.
Le cadre est supporté par de nombreux bibliothèques à code source libre tels que openssl, SQLite
and libc. Il est aussi supporté par les bibliothèques d’Android. Du point de vue sécurité, le cadre
est basé sur les permissions des systèmes de fichiers d’Unix qui autorise les applications à ne
s’exécuter qu’avec les droits attribués pendant l’installation.
3.5.2 La machine Virtuelle de Dalvik DVM
C’est une machine virtuelle de base avec une mémoire extrêmement petite. Elle a été conçue
spécialement pour les systèmes embarqués Android et à travailler dans des situations à faible
consommation. La DVM exécute des codes avec l’extension .dex (Dalvik executable) qui est
l’équivalent des codes en .class de la machine virtuelle Java classique.
3.5.3 Le graphisme
Grâce à des bibliothèques graphiques 2D et 3D basés sur OpenGL ES 1.0, il est possible qu’avec
Android on puisse avoir de jolies applications comme Google Earth et des jeux spectaculaires
comme Second Life.
27
3.5.4 La base de données SQLite
C’est une base de données relationnelle extrêmement petite, de l’ordre de 500 ko, qui est intégré
dans les systèmes Android. Sa simplicité la rend plus facile d’usage pour les plateformes comme
Android.
3.5.5 La disposition graphique maniable
La plateforme peut s’adapter avec toutes les dimensions d’écran, le VGA, les bibliothèques
graphiques cités précédemment et les dispositions d’affichage des Smartphones traditionnels. Un
moteur graphique 2D est aussi inclus. L’accès au sous-système et aux couches composites 2D ou
3D est géré par une bibliothèque spécifique.
3.5.6 Les connectivités
Le système Android supporte une grande variété de technologie incluant le GSM, le GPRS, l’EDGE
le CDMA, l’UMTS, l’HSDPA, l’HSUPA, l’EVDO, le LTE, le Bluetooth et le Wifi.
3.5.7 La messagerie
Les différentes formes de messagerie disponibles pour le système sont le SMS, le MMS et le XMPP.
3.5.8 Le navigateur Web
Le navigateur web disponible dans les systèmes Android est basé sur le WebKit. Il inclut
LibWebCore qui est un moderne moteur de navigation web moyennant du navigateur Android et
des vues web embarquées.
3.5.9 Le multimédia
Le système peut supporter des fichiers multimédias images, audio, vidéos de différents formats
comme MPEG-4, H.264, MP3, AAC, AMR, JPEG, PNG, GIF.
3.5.10 Les matériels
Il est possible avec Android d’utiliser la caméra, l’écran tactile, le GPS, l’accéléromètre,
l’accélérateur graphique 3D. Divers capteurs sont présents sur certaines versions d’Android comme
le gyroscope, le capteur de gravité et le baromètre. D’autres versions prennent en charge le système
NFC (Near Field Communication).
28
3.6 Le développement d’application
Le framework Android permet de créer des applications extrêmement riches et innovatrices en
utilisant différents éléments. En effet, le langage le plus utilisé pour programmer des applications
Android est le Java. Il existe d’autres langages qui permettent de le faire comme le C ou le C++ en
utilisation le kit natif de développement NDK (Native Development Kit). Pour mieux voir les
possibilités qu’offre Android, on présentera dans cette partie la structure d’une application Android
et les différentes interfaces de programmation du langage Java mis à disposition d’un éditeur de
logiciel.
3.6.1 La structure d’une application Android
Le développeur est libre dans la programmation des comportements de son application. Il peut
ouvrir la fenêtre principale de son programme, les boîtes de dialogue comme il le souhaite. De son
point de vue, il tire parti des fonctionnalités du système d’exploitation mais ne s’occupe pas des
autres programmes susceptibles de s’exécuter en mêmes temps que son programme. Les composants
de base structurant une application Android sont : les activités, les fournisseurs de contenus, les
intentions et les services. [13] [15]
Les activités
La brique de base de l’interface utilisateur s’appelle activité. Elle peut être considérer comme
l’équivalent Android de la fenêtre ou la boîte de dialogue d’une application Java classique. Bien que
des activités puissent ne pas avoir d’interface utilisateur, un code invisible sera délivré le plus
souvent sous la forme de fournisseurs de contenus ou de services.
Les fournisseurs de contenus
Les fournisseurs de contenus offrent un niveau d’abstraction pour toutes les données stockées sur
les terminales et accessibles aux différentes applications. Le modèle de développement Android
encourage la mise à disposition de ses données propres aux autres programmes. Construire un
fournisseur de contenus permet d’obtenir ce résultat tout en gardant un contrôle total sur la façon
dont on accédera aux données.
29
Les intentions
Les intentions sont des messages système. Elles sont émises par le terminal pour prévenir les
applications de la survenue de différents évènements, que ce soit une modification matérielle ou
l’arrivée de données, en passant par les évènements des applications elles-mêmes. Il est possible
non seulement de répondre aux intentions, mais également d’en créer afin de lancer d’autres
activités pour prévenir qu’une situation a lieu.
Les services
Les activités, les fournisseurs de contenus et les récepteurs d’intentions ont une durée de vie limitée
et peuvent être éteints à tout moment. Les services sont en revanche conçus pour durer et, si
nécessaire, indépendamment de toute activité.
3.6.2 L’interface de programmation pour les interfaces utilisateurs
L’interface utilisateur est quelque chose que l’utilisateur voit et avec lequel il interagit. Android
fournit une variété d’éléments d’interface préconstruits comme des éléments de disposition
structuré et des éléments qui permettent de les contrôler. Android fournit aussi des modules
d’interface spéciale comme les boîtes de dialogue, les gadgets, les notifications et les menus. Les
éléments de toutes les interfaces utilisateurs des applications Android sont construits à partir des
objets suivants :
View : view est objet qui affiche quelque chose à l’écran.
ViewGroup : c’est un objet qui maintient d’autres objets view pour constituer un fichier de
positionnement.
Figure 3.02 : Structure de base des interfaces utilisateurs
30
Un moyen plus facile et effectif pour définir un fichier de positionnement des éléments d’interface
est l’utilisation d’un fichier XML. Android a su profiter de la puissance du langage XML qui est
un langage interprété et facilement compréhensible par l’homme comme le langage HTML.
Les fichiers de positionnement sont définis par : [14]
LinearLayout : c’est un élément de type ViewGroup qui aligne ses vues filles dans une seule
direction soit horizontalement soit verticalement.
RelativeLayout : c’est un élément de type ViewGroup qui aligne ses vues filles les uns par
rapport aux autres.
ListView : c’est un élément de type ViewGroup qui affiche son contenu en liste déroulante.
GridView : c’est élément de type ViewGroup qui affiche son contenu en grille à deux
dimensions.
Les widgets de base de l’interface utilisateur sont cités dans le tableau : les boutons, les cases à
cocher, les boutons radio, les messages surgissant.
Classes Descriptions
Button Représente un bouton
CheckBox Représente les cases à cocher
DatePicker Représente un sélecteur de date
EditText Représente un champ de texte
ImageView Permet d’afficher une image
Toast Permet d’afficher des messages surgissant
TimePicker Représente un sélecteur de temps
Tableau 3.03: Les widgets de base
3.6.3 L’interface de programmation pour les graphismes et les animations
Android fournit une variété d’interfaces de programmation puissantes pour animer les éléments
d’interface utilisateur, de faire des dessins 2D personnalisés et même faire du 3D.
Cette interface permet d’exploiter les fonctionnalités graphiques et animation du système. Parmi ces
fonctionnalités sont la possibilité de faire des applications avec OpenGL, les accélérateurs et les
animations.
Les animations
Le système Android fournit deux animations : animation de propriété et animation de vue.
L’animation de propriété est la plus utilisée, elle est flexible et offre plus de fonctionnalités. Un
31
autre type d’animation est l’animation des ressource dessins (drawable) qui permet de charger des
ressources photos dans le projet et de les afficher l’un après l’autre.
L’animation de propriété
Cette animation permet d’animer des objets de tous types incluant ceux qui ne sont pas
directement affichés à l’écran. Le système est extensible et permet d’animer des objets de types
personnalisés. Elle peut paramétrer le temps de l’animation et le comportement des objets.
L’animation de vue :
L’animation de vue est le view est vieux système et ne permet d’animer que des vues (view).
Cette animation est facile à mettre en œuvre et offre assez de possibilités pour toutes applications
comme la rotation et l’agrandissement.
L’animation de dessin :
Cette animation concerne l’affichage d’images l’un après l’autre pour créer des animations
comme avec la pellicule des anciens films.
Les graphismes 2D et 3D
L’utilisation des graphismes dépend du besoin de l’application. Le graphisme des applications
interactifs n’est pas le même que le graphisme des applications statiques. Android met en œuvre ses
moyens par :
La toile et les images :
Le système Android fournit la fonctionnalité de porter des images personnalisés sur une toile ou
de modifier des vues pour personnaliser leurs apparences et comportement.
OpenGL :
Le système Android supporte les graphismes 2D et 3D haute performance avec l’utilisation de
l’Open Graphics Library et spécialement la version pour les systèmes embarqués. Cette version
pour système embarquée est nommée OpenGL ES (OpenGL for Embedded System).
3.6.4 L’interface de programmation pour le stockage de données
Le stockage de données se fait de différentes façons selon leurs types. Il est possible de stocker les
données dans les préférences, les bases de données, les serveurs distants, la mémoire interne ou
externe au système.
32
Les préférences :
Les préférences sont des menus pour définir quelques paramètres utilisateurs. Elles sont gérées par
la classe de base SharedPreferences qui permet de sauvegarder et de reprendre des valeurs de types
primitifs (booléen, int, long, string et float).
La mémoire interne
Les applications Android peuvent sauvegarder directement ses données dans la mémoire du
périphérique et lorsque l’application est désinstallée les données sont effacées. Les données qui y
sont stockées ne sont pas accessibles par d’autres applications.
La mémoire externe
Les applications Android peuvent stocker ses données dans une mémoire externe comme les cartes
SD. Les données qui y sont stockées sont accessibles par toutes les applications.
Les bases de données
Android supporte toutes les fonctionnalités de la base de données SQLite. La classe
SQLiteOpenHelper est recommandé pour gérer cette base de données.
Les serveurs distants
L’utilisation des réseaux est possible pour stocker et reprendre les données depuis un serveur
distant. L’exploitation de cette fonctionnalité nécessite l’utilisation des paquets android.net et
java.net.
3.6.5 L’interface de programmation pour les connectivités
Android fournit de riches interfaces de programmation pour permettre aux applications de se
connecter et d’interagir avec d’autres périphériques par le biais des technologies suivantes :
Bluetooth, NFC (Near Field Communication), WiFi (Wireless Fidelity), USB, et SIP, et des réseaux
mobiles standards.
Bluetooth
La plateforme Android inclut le support du réseau Bluetooth qui permet à un appareil d’échanger
des données avec d’autres appareils. Le framework fournit l’accès aux fonctionnalités Bluetooth
33
par l’intermédiaire des interfaces de programmation Bluetooth d’Android.
Avec l’utilisation de cette interface de programmation, les applications peuvent faire les actions
suivantes :
Recherche de périphériques
Etablissement de canaux RFCOMM
Transfert de données
Gérer plusieurs connexions Bluetooth
Tous les éléments concernant le Bluetooth sont inclus dans le paquet android.Bluetooth. Voici un
résumé des classes et des interfaces nécessaires pour gérer une connexion Bluetooth.
BluetoothAdapter : cette classe représente l’adapteur Bluetooth local et est le point d’entrée
pour toutes interactions. Elle est utilisée pour la découverte des périphériques disponibles et
pour lister les périphériques appariés.
BluetoothDevice : cette classe représente un périphérique distant. Elle est utilisée pour
demander une connexion ou des informations sur les appareils.
BluetoothSocket : cette classe représente l’interface pour les sockets Bluetooth. Elle permet
aux applications d’échanger des données.
BluetoothServerSocket : cette classe représente un serveur socket qui écoute les requêtes en
provenance d’autres périphériques.
BluetoothClass : cette classe décrit les caractéristiques générales et les capacités d’un
périphérique Bluetooth.
BluetoothProfile : cette classe représente un profile Bluetooth. Un profil Bluetooth est une
spécification de communication entre les périphériques.
BluetoothHeadset : cette classe fournit le support des casques Bluetooth utilisée pour les
mobiles.
BluetoothA2dp : cette classe définit comment les fichiers audio haute qualité doivent être
partagé d’un périphériques à d’autres.
BluetoothProfile.ServiceListener : cette classe est utilisée pour notifier les profils des clients
lors d’une connexion et d’une déconnexion.
34
NFC
Near Field Communication (NFC) est un ensemble de technologies sans fils à courte portée
nécessitant 4cm ou moins pour initier une communication. NFC permet de partager de petites
charges utiles de données entre un périphérique Android et une étiquette NFC ou entre deux
périphériques Android.
Wifi
La plateforme Android gère deux types de connexion wifi à savoir le wifi classique et le wifi direct.
Le wifi classique fournit les moyens par lesquels les applications peuvent communiquer avec les
piles bas niveau que fournissent le réseau d’accès wifi. Ce premier type de connexion utilise un
point d’accès pour relayer les informations. Le wifi classique est gérer par les classes de bases
suivantes :
WifiManager : c’est la classe de base gérant tous les aspects des connectivités wifi à savoir
la liste des réseaux préconfigurés, la liste des réseaux actifs, le résultat des recherches menant
au choix de connexion et l’état des réseaux.
ScanResult : cette classe prend en charge la description des points d’accès à découvert.
WifiConfiguration : cette classe prend en charge toutes les configurations du réseau comme
la sécurité, le statut, les protocoles autorisées, etc.
Le wifi direct permet aux périphériques Android de se connecter entre eux sans nécessité de point
d’accès particulier par l’intermédiaire de la technologie wifi. Cette technologie permet de découvrir
et de se connecter avec les dispositifs qui la supportent. Elle permet aussi de communiquer avec des
débits rapides et une distance plus longue par rapport au Bluetooth. Wifi direct est utile pour les
applications partagées avec plusieurs utilisateurs comme les jeux multi-joueurs et les applications
de partage de photo. La gestion du wifi direct consiste en trois parties principales :
WifiP2pManager : c’est une classe qui prend en charge la recherche des dispositifs
disponibles, la mise en place de connexion et le dressage de la liste des dispositifs.
Les écouteurs : ce sont des sous-classes de WifiP2pManager. Elles permettent de notifier le
succès ou l’échec de l’établissement d’une connexion.
Les intentions : ce sont des intentions œuvrant dans la notification des évènements
spécifiques détectés comme l’apparition de nouveaux dispositifs ou l’arrêt d’une connexion.
35
USB
Android supporte une variété de périphériques et accessoires USB. La communication se fait en
deux modes : le mode accessoire et le mode hôte. En mode accessoire, le matériel USB externe joue
le rôle de l’hôte en alimentant la communication. En mode hôte, le périphérique Android joue le
rôle de l’hôte et alimente à son tour la communication. Il est important de connaître ces deux modes
de connexion pour les applications de commande de périphériques externes et le contrôle du
périphérique Android.
Figure 3.03 : Les modes de connexions USB
SIP
Android fournit une interface de programmation supportant le protocole d’initiation de session ou
SIP (Session Initiation Protocol). SIP est un protocole standard ouvert de gestion de sessions
souvent utilisé dans les télécommunications multimédia (son, image, etc.). Ceci permet d’ajouter
aux applications la fonction de téléphonie par internet à base de SIP. La plateforme inclut une pile
de protocole SIP complet et des services de gestion d’appel permettant aux applications de gérer
facilement les appels entrants et sortants. Des exemples d’application qui utilisent l’interface de
programmation SIP sont les vidéos conférences et la messagerie instantanée. Les classes de bases
gérant une application SIP sont :
SipManager : cette classe a pour tâche d’initier une connexion SIP et de contrôler l’accès au
service SIP.
SipAudioCall : c’est une classe qui prend en charge un appel vocal par-dessus le protocole
SIP
36
SipProfile : cette classe définit un profile SIP incluant le compte, le domaine et les
informations sur le serveur puisqu’on travaille sur Internet.
Les réseaux standard de téléphonie mobile
Une interface de programmation pour la gestion des services de téléphonie a été mise en place pour
faciliter l’intégration de ces services dans les applications. Elle prend en charge les appels et l’envoi
de SMS. Les classes de bases pour la téléphonie sont empaquetées dans android.telephony :
TelephonyManager : cette classe fournit l’accès aux informations concernant les services
sur le dispositif. Avec cette classe, il est possible d’accéder aux différentes informations sur
l’abonné.
SmsManager : cette classe prend en charge l’envoi de données, de textes et des pdu SMS.
Les services de rapport d’état d’envoi sont aussi traités par cette classe.
3.6.6 L’interface de programmation pour le multimédia
Le système multimédia d’Android supporte une variété de fichiers multimédias et les applications
peuvent facilement les contenir. Les applications peuvent jouer et enregistrer de l’audio et de la
vidéo, d’afficher et de prendre des photos. Le tableau 3.03 résume les types de fichiers multimédias
supportés par Android
Types Format
Audio AAC, MP3, MIDI, Vorbis, PCM/WAVE, FLAC
Image JPEG, GIF, PNG, BMP, WEBP
Video H.263, H264 AVC, MPEG-4, VP8
Tableau 3.04: Les types de fichiers multimédias supportés par Android
L’enregistrement vocal
Le système Android permet d’enregistrer et de coder une variété de formats audio qui peut être
facilement intégré dans les applications. La classe de base qui gère l’enregistrement audio est la
classe MediaRecorder.
La caméra
Android permet de capturer des images et des vidéos via l’interface de programmation pour la
caméra. Les classes de base qui gèrent ces captures sont :
37
Camera : cette classe est fondamentale pour contrôler la caméra. Elle est utilisée pour lancer
une prise de photo et un enregistrement de vidéo.
SurfaceView : cette classe est utilisée pour présenter une caméra active à l’utilisateur
MediaRecorder : cette classe est utilisée pour enregistrer une vidéo à partir de la caméra
Intent : c’est une intention permettant de capturer des images ou des vidéos sans utiliser
directement l’objet caméra.
3.6.7 L’interface de programmation pour la localisation et les capteurs
L’utilisation des divers capteurs rend les applications Android plus riches dans la localisation et
dans les capacités mouvantes. La localisation se fait par GPS ou par les réseaux radio-mobiles. Les
capteurs qu’on peut trouver dans les dispositifs Android sont : l’accéléromètre, le gyroscope, le
détecteur de température, baromètre, etc.
Les cartes et localisations
Les applications de cartographie et de localisation offrent une nouvelle expérience pour les
dispositifs mobiles. Les classes œuvrant dans la mise en œuvre des services de localisation sont
présentes dans l’empaquetage android.location à savoir la plus importante LocationManager.
Particulièrement Google fournit une interface de programmation pour la cartographie qui est
identifié par le nom Google Maps Android API. La classe de base pour l’affichage d’une carte est
la classe MapView.
Les capteurs
La plupart des dispositifs Android sont dotés de capteurs pour détecter les mouvements,
l’orientation et les conditions environnementales. Ces capteurs sont capables de générer des
données avec précision et exactitude.
Les capteurs ayant été installés dans les périphériques Android sont classée en trois catégories :
Les capteurs de mouvements : ces capteurs mesurent les forces d’accélération et les forces
de rotation dans trois axes. Cette catégorie inclut l’accéléromètre, le capteur de gravité, le
gyroscope et les capteurs de rotation vectoriels.
Les capteurs de conditions environnementales : ces capteurs mesurent la variation des
paramètres environnementaux comme la température ambiante, la pression atmosphérique,
38
l’intensité lumineuse et l’humidité. Cette catégorie inclut le baromètre, le photomètre et le
thermomètre.
Les capteurs de position : ces capteurs mesurent les positions physiques du dispositif. Cette
catégorie inclut les détecteurs d’orientation et le magnétomètre.
Les classes de base pour la gestion des divers capteurs sont incluses dans l’empaquetage
android.hardware et sont :
SensorManager : cette classe fournit les méthodes pour écouter et accéder aux capteurs,
enregistrer et supprimer les évènements en provenance des écouteurs et de se procurer les
informations d’orientation.
Sensor : cette classe permet de déterminer les capacités d’un capteur.
SensorEvent : cette classe est utilisée pour déterminer les informations sur un évènement à
savoir les données renvoyées, le type de capteur qui a générer l’évènement, la précision des
données et le temps de déroulement de l’évènement.
SensorEventListener : cette classe joue un rôle dans la notification des changements de
valeur des capteurs et des changements de précision dans la mesure.
La plupart des capteurs comme l’accéléromètre, le gyroscope, le magnétomètre et le capteur de
gravité utilise un repère de coordination à trois axes pour exprimer les données captées. La figure
3.04 nous montre ce repère.
Figure 3.04 : Repère de coordination des capteurs
39
3.7 Conclusion
Il semble clair que les systèmes mobiles tels qu'Android seront déployés de façon importante dans
les années à venir, que ce soit sur les téléphones mobiles ou sur d'autres plateformes. Les
fonctionnalités exploitables sont très nombreuses et permettent de développer des applications
n’ayant jamais été vues sur les anciens téléphones cellulaires. L’ouverture et la simplicité d’usage
du système engendrent ainsi l’accroissement des développeurs et des utilisateurs. Dans ce chapitre
ont été présenté l’historique et les fonctionnalités du système d’exploitation Android. On peut
conclure que tout le monde peut prendre sa part d’un terminal Android, que ce soit des étudiants, de
simple utilisateurs ou des professionnels. Le dernier chapitre sera consacré à la description de la
réalisation d’une application de messageries sous la plateforme Android.
40
CHAPITRE 4
REALISATION D’UNE APPLICATION DE MESSAGERIE
4.1 Introduction
Le chapitre précédant a fourni plusieurs informations sur la plateforme Android. Cette nouvelle
technologie est aujourd’hui un véritable phénomène de société et le secteur est en pleine expansion.
Ce nouveau support multimédia permet d’allier tous les avantages d’un téléphone portable avec
pleins de fonctionnalités issues des ordinateurs. Une conséquence est l’apparition de petites
applications très pratiques. Ces applications sont destinées à faciliter la vie quotidienne de
l’utilisateur en lui procurant un service sur son appareil.
C’est dans cette optique que nous avons décidé de créer une application SomesoBT pour Android.
Il est très courant que les gens s’échangent des messages courts dans un périmètre assez limité usant
des réseaux d’opérateurs de télécommunications, consommant ainsi du crédit de communication.
L’objectif est de réaliser une application de messagerie sans utiliser les réseaux d’opérateurs.
Nous verrons dans ce chapitre les outils qui ont été utilisé pour la réalisation de l’application puis
nous effectueront la présentation de l’application.
4.2 Le module d’extension ADT d’eclipse
ADT (Android Developer Tools) est une extension de l’environnement de développement intégré
Eclipse. Elle supporte la création et le débogage des applications Android. Le module est disponible
pour différents systèmes d’exploitation à savoir Windows OS, Linux OS et Mac OS. L’utilisation
de ce module permet de faire les actions suivantes : [13] [15]
Créer de nouveau projet Android
Accéder aux outils nécessaires au développement d’application tels que : les émulateurs, les
appareils externes de débogage, le gestionnaire de kit de développement.
Compiler et déboguer les applications Android
Exporter les applications en Android Packages (.apk)
Créer des certificats numériques pour les applications
41
Figure 4.01 : Démarrage d’ADT
4.3 Fonctionnement de l’ADT
L’installation du module est facile et fournit beaucoup d’outils pour le développement d’application.
4.3.1 L’installation du module :
Actuellement, Google fournit un paquet ADT qu’il met à jour régulièrement incluant les éléments
suivants :
Eclipse avec le module d’extension ADT
L’outil de développement de logiciel pour Android (Android SDK)
Les dernières plateformes Android
L’image du système Android pour les émulateurs
Avec ce paquet, il suffit de décompresser le fichier compressé au nom d’adt-bundle-XXX-XXX
disponible sur le site http://developper.android.com sans oublier d’installer la JDK. [9][14][15]
4.3.2 L’espace de travail
C’est dans cette espace qu’on passe beaucoup de temps, car elle permet de créer les nouveaux
projets, d’écrire les codes et mêmes créer l’interface graphique.
42
Figure 4.02 : Espace de travail
Un des outils mise à disposition des développeurs est l’outil de création d’interface graphique qui
utilise le langage XML. Il se présente comme à la figure 4.03
Figure 4.03 : Espace de travail pour l’interface graphique
43
On peut aussi accéder aux émulateurs à partir de l’espace de travail avec l’icône et ils se
présentent comme à la figure 4.04 :
Figure 4.04 : Capture d’écran de l’émulateur Android
4.4 Description de l’application de messagerie somesoBT
4.4.1 A propos de somesoBT
Le nom de notre application vient de la combinaison de deux mots qui sont : someso pour sms et
BT pour Bluetooth pour donner le nom « somesoBT ». « someso » est un terme de l’argot malgache
utilisé pour désigner les messages courts échangés entre les appareils téléphoniques mobiles. Il a
été directement tiré du sigle sms de Short Message Service. Une image identifiant l’application est
présentée ci-dessous.
Figure 4.05 : Logo de l’application somesoBT
44
L’objectif de somesoBT
L’application somesoBT consiste en l’échange de messages courts entre des périphériques Android
sans utiliser les réseaux des opérateurs de télécommunications mais seulement la technologie
Bluetooth.
Figure 4.06 : Objectif de somesoBT
Utilisation de la technologie Bluetooth
La norme Bluetooth est une technologie des télécommunications qui offre diverses possibilités. Le
choix de l’utilisation de cette technologie pourrait se justifier par le vœu de vouloir exploiter ses
capacités et d’en faire l’étude. Par exemple, on sait qu’avec Bluetooth, il est possible d’émettre à
plusieurs appareils simultanément. Cette fonction sera utilisée par les services offerts par
l’application SomesoBT.
4.4.2 Le fonctionnement de l’application
Fonctionnalités de base :
Les fonctionnalités de base décrivent les caractéristiques principales de l’application et sont
indispensables au bon fonctionnement de celle-ci.
45
L’application développée pour les Smartphones, fonctionnant sous Android, est facile et rapide
d’utilisation. L’installation devra se faire sans difficulté.
Cette application intègrera deux types de fonction :
La fonction d’échange de messages point à point (someso P2P)
La fonction d’échange de messages point à multipoint (someso Multicast)
La première fonction se fait entre deux périphériques et les échanges se fait en half-duplex. La
seconde fonction se fait entre le maître et ses esclaves, l’échange se fait en un seul sens. Les
communications dans les deux cas décrits précédemment sont illustrées dans la figure suivante.
Figure 4.07 : Illustration des échanges
Fonctionnalité avancée
Cette partie expose la fonctionnalité de mémorisation des messages échangés entre les équipements
communicants. Le but principal de cette fonction est que, si plus tard l’utilisateur veut consulter ses
anciennes conversations, ce sera dans ses possibilités. L’utilisateur pourra donc consulter les
messages, de les sauvegarder ou de les supprimer.
46
4.5 L’application réalisée
4.5.1 Présentation et illustration
Pour faciliter l’interaction entre l’utilisateur et le Smartphone, somesoBT offre une interface simple
et facile d’usage. L’écran d’accueil de l’application se présente comme suit :
Figure 4.08 : Ecran d’accueil
L’appui sur le bouton « Lancer » amène l’utilisateur à une seconde activité. Cette activité permet de
choisir entre les deux les fonctions de l’application et propose deux boutons.
Figure 4.09 : Choix de mode d’utilisation
47
L’appui sur l’un des deux boutons amène l’utilisateur à l’activité qui gère les connexions et les
échanges des messages. Dans le premier cas où l’utilisateur choisit la communication entre deux,
aucun autre périphérique ne peut être lié au réseau sauf un maître et un esclave. Dans le second cas
plusieurs périphériques peuvent être connectés au maître et permettre ainsi de faire des broadcast.
Ci-après est illustrée cette activité :
Figure 4.10 : Activité de gestions des messages
Pour connecter les appareils, il faut aller dans le menu et appuyer sur le bouton « se connecter » et
choisir les périphériques après. Une boîte dialogue permet de faire cette action.
Figure 4.11 : Initiation des connexions
48
Une fois passé cette étape, les échanges peuvent commencer. Les anciens messages qui ont été
échangés peuvent être consultés grâce à la fonctionnalité de stockage SQLite de la plateforme
Android.
Figure 4.12 : Anciens messages
4.5.2 Contraintes pendant la réalisation
L’application a été développée à l’aide du SDK Android sous l’IDE Eclipse et s’est appuyée sur les
technologies XML et Java. La première contrainte pendant le développement a été la nécessité de
connaître et de maîtriser ces deux langages. La seconde contrainte est que les émulateurs de la SDK
Android ne supportent pas l’émulation de la technologie Bluetooth. Nous avons dû faire le débogage
et les tests sur un téléphone physique.
4.6 Conclusion
Dans ce chapitre, on a décrit une application d’envoie et de réception de messages courts qui utilise
la technologie Bluetooth. L’application porte le nom de « somesoBT » et présente deux fonctions :
celle de la liaison en pair à pair et celle de la liaison pour le broadcast. Ainsi nous avons vu qu’il est
possible d’effectuer des émissions d’un appareil à un autre ou d’un appareil à plusieurs autres
appareils avec la technologie Bluetooth. L’aide qu’a fourni le site officiel pour l’usage du SDK
fournit a facilité la mise en œuvre de ces fonctions et la mise en place des interf aces graphiques.
49
CONCLUSION GENERALE
Dans le cadre de ce mémoire, nous nous sommes intéressés aux réseaux sans fils et à la plateforme
libre Android. L’objectif est d’exploiter les fonctionnalités de connectivité du système Android et
d’y déployer une application de messagerie sans utiliser les réseaux d’opérateurs de
télécommunications. De ce fait, le premier chapitre a été consacré aux réseaux sans fils proprement
dits, aux différentes catégories et aux phénomènes qui influencent les communications. Ces réseaux
sans fil ne cessent d’évoluer et offrent d’avantage des services à caractères très varier.
Ensuite, nous avons présenté les propriétés de la technologie Bluetooth. C’est cette norme qui a été
choisie pour pallier aux réseaux d’opérateurs. Les recherches ont permis de faire l’étude des
différentes couches modélisant la technologie, les techniques de gestion des communications et ses
caractéristiques. Les réseaux de cette technologie ne couvrent qu’une distance de quelques mètres
et cette limite a restreint la portée de l’application « SomesoBT ».
Le troisième chapitre a introduit le système d’exploitation Android. Grâce à l’ouverture de ce
système, les recherches ont aboutis à une liste d’informations plus ou moins complète sur la
plateforme. Cette technologie s’ouvre à plusieurs types de connectivités et nous donne la possibilité
de personnaliser nos applications grâce à l’accessibilité pour le publique de son kit de
développement. L’accès mobile aux réseaux de télécommunications pourrait s’épanouir facilement
grâce à ce système.
Enfin, le quatrième chapitre nous a offert une approche pratique des éléments évoqués dans les
chapitres précédents. Nous nous sommes focalisés sur le déploiement d’une application de
messagerie qui utilise la technologie sans fils Bluetooth. L’application « SomesoBT » nous donne
la possibilité d’échanger des messages courts dans un rayon d’une dizaine de mètres sans les réseaux
d’opérateurs de télécommunication.
Ainsi, ce mémoire a permis de découvrir le monde des dispositifs sans fil. La plateforme Android
supporte une variété de connectivités et permet de développer des applications diversifiées.
Sûrement plusieurs possibilités s’ouvrent aux divers services mobiles mais nous nous sommes
limités à exploiter la messagerie pour permettre aux utilisateurs d’échanger des messages courts
sans les réseaux d’opérateurs.
50
ANNEXE 1 LE LANGAGE JAVA
A1.1. 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é.
[14]
A1.2. 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
A1.3. Programme de base Java
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("HelloWorld");
}
}
51
ANNEXE 2 EXTRAITS CODE SOURCE
A.2.1 Interface d’accueil
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@drawable/style" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentTop="false"
android:layout_centerHorizontal="false"
android:orientation="vertical" >
<ImageView
android:id="@+id/img2"
android:src="@drawable/someso"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="25dp"
/>
<ImageView
android:id="@+id/img3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="10dp"
android:src="@drawable/koko"
android:layout_gravity="center" />
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Lancer"
android:textSize="20sp"
android:textColor="#21aad4"
android:textStyle="bold"
android:id="@+id/lancer"
android:layout_marginTop="20dp"
android:background="@null"/>
<Button
android:id="@+id/apropo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/lancer"
android:layout_alignTop="@+id/lancer"
android:layout_marginTop="6dp"
android:background="@null"
android:text="A propos"
android:textColor="#21aad4"
android:textSize="20sp"
android:textStyle="bold" />
<Button
android:id="@+id/quitter"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/apropo"
android:layout_below="@+id/lancer"
52
android:layout_marginTop="6dp"
android:background="@null"
android:text="Quitter"
android:textColor="#21aad4"
android:textSize="20dip"
android:textStyle="bold"
android:layout_marginBottom="2dp"/>
</LinearLayout>
</RelativeLayout>
A.2.2 Activité principale de l’application
public class MainAct extends Activity {
Button lancer, apropo, quitter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lancer = (Button) findViewById(R.id.lancer);
apropo = (Button) findViewById(R.id.apropo);
quitter = (Button) findViewById(R.id.quitter);
TranslateAnimation anim1 = new TranslateAnimation(320, 0, 0, 0);
anim1.setStartOffset(320);
anim1.setFillAfter(true);
anim1.setDuration(500);
this.findViewById(R.id.lancer).startAnimation(anim1);
anim1 = new TranslateAnimation(-320, 0, 0, 0);
anim1.setStartOffset(-320);
anim1.setDuration(500);
this.findViewById(R.id.apropo).startAnimation(anim1);
anim1 = new TranslateAnimation(0, 0, 160, 0);
anim1.setStartOffset(160);
anim1.setDuration(500);
this.findViewById(R.id.quitter).startAnimation(anim1);
anim1 = new TranslateAnimation(0, 0, -160, 0);
anim1.setStartOffset(-160);
anim1.setDuration(500);
this.findViewById(R.id.img2).startAnimation(anim1);
lancer.setOnClickListener(new View.OnClickListener(){
public void onClick (View v) {
Intent i = new Intent(getBaseContext(), ConfigAct.class);
startActivity(i);
finish();
}
});
apropo.setOnClickListener(new View.OnClickListener(){
public void onClick (View v) {
ApropoDialog();
53
}
});
quitter.setOnClickListener(new View.OnClickListener(){
public void onClick (View v) {
finish();
}
});
}
public void ApropoDialog(){
AlertDialog.Builder ad = new AlertDialog.Builder(this);
ad.setIcon(R.drawable.ic_dialog_info);
ad.setTitle("Informations");
ad.setMessage("Développeur: NTSUANDIH\n" + "Email:
ad.setNegativeButton("OK", new
android.content.DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
ad.show();
}
@Override
public void onBackPressed(){
qtDialog();
}
private void qtDialog() {
AlertDialog.Builder ad = new AlertDialog.Builder(this);
ad.setIcon(R.drawable.alert_dialog_icon);
ad.setTitle("Quitter");
ad.setMessage("Voulez-vous vraiement quitter?");
ad.setNegativeButton("Non", new
android.content.DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
ad.setPositiveButton("Oui", new
android.content.DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
ad.show();
}
}
54
A.2.3 Méthode de gestion de connexion multiple
public synchronized void connect(BluetoothDevice device) {
if (D) Log.d(TAG, "connecté à: " + device);
// Annulation de threads, tentative de connexion
if (mEtat == ETAT_CONNEXION) {
if (mConnectThread != null) {mConnectThread.cancel();
mConnectThread = null;}
}
// Annulation de threads, connexion en cours
if (mConnectedThread != null) {mConnectedThread.cancel();
mConnectedThread = null;}
// Creation de threads pour chaque Numero unique universel (7 esclave)
for (int i = 0; i < 7; i++) {
try {
mConnectThread = new ConnectThread(device, mUuids.get(i));
mConnectThread.start();
setState(ETAT_CONNEXION);
} catch (Exception e) {
}
}
}
A.2.4 Méthode de gestion d’envoi de message
private void envoyerMessage(String message) {
// si connecté
if (somesoP2pService.getState() != SomesoP2pService.STATE_CONNECTED) {
Toast.makeText(this, R.string.non_connecte,
Toast.LENGTH_SHORT).show();
return;
}
// Si il y a quelques choses à envoyer
if (message.length() > 0) {
// Conversion du message en Bytes
byte[] envoyer = message.getBytes();
somesoP2pService.write(envoyer);
mOutStringBuffer.setLength(0);
mOutEditText.setText(mOutStringBuffer);
}
}
A.2.5 Méthode de gestion de la base de données
public class DBAdapteur {
DatabaseHelperDBHelper;
Contextcontext;
SQLiteDatabasedb;
public DBAdapteur(Context context){
this.context = context;
DBHelper = new DatabaseHelper(context);
}
55
public class DatabaseHelper extends SQLiteOpenHelper{
Context context;
public DatabaseHelper(Context context) {
super(context, "discussion", null, 1);
this.context = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table discussion (_id integer primary key autoincrement, "
+ "initiateur text not null, "
+ "message text not null"
+ ");");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Toast.makeText(context, "Mise à jour de la Base de données version
"+oldVersion+" vers "+newVersion, Toast.LENGTH_SHORT).show();
db.execSQL("DROP TABLE IF EXISTS discussion");
onCreate(db);
}
}
public DBAdapteur open(){
db = DBHelper.getWritableDatabase();
return this;
}
public void close(){
db.close();
}
public void Truncate(){
db.execSQL("DELETE FROM discussion");
}
public long insererUnMessage(String initiateur, String message){
ContentValues values = new ContentValues();
values.put("initiateur", initiateur);
values.put("message", message);
return db.insert("discussion", null, values);
}
public boolean supprimerMessage(long id){
return db.delete("discussion", "_id="+id, null)>0;
}
public Cursor recupererLaListeDesMessages(){
return db.query("discussion", new String[]{
"_id",
"initiateur",
"message"}, null, null, null, null, null);
}
}
56
BIBLIOGRAPHIE
[1] Ebook, « 802.11 Les réseaux sans fil », http://online.infracom.fr, 29 mars 2003
[2] M.A. Rakotomalala. « Radiocommunication mobile », ESPA Madagascar-dép.
Télécommunications, 2011-2012
[3]
[4]
M. Sauter, « From gsm to lte, an introduction to mobile networks and
broadband », Wiley Edition, 2011
T. Kelly. « VoIP pour les nuls », Edition Limitée Avaya, 2005
[5] B.A. Miller, C. Bisdikian, « Bluetooth Revealed »
[6]
[7]
J.P. Muller, « Bluetooth », Physique appliquée
M. Riku, « Bluetooth Protocol Architecture Version 1.0 », 25 Août 1999
[8]
M. Vongvilay, G. Nguyen Ngoc, G. Wolowiec. « Bluetooth », Exposés NT
Réseaux, 2005
[9] L. Wei-Meng. « Beginning Android Application Development », Edition Wiley
Publishing Inc., 2011
[10] S. Conder, L. Darcey, « Android Wireless Application Development », Second
Edition, 2010
[11]
[12]
[13]
C. Haseman, « Creating Android Applications Develop and Design », 2012
Z. Mednieks, L. Dornin, G.B. Meike, M. Nakamura, « Programming Android »,
First Edition by O’Reilly, 2011
M. Murphy, « L’art du développement Android », Edition Apress, 2009
[14]
[15]
[16]
L.E. Randriarijaona. « Introduction à la programmation Java », ESPA
Madagascar-dép. Télécommunications, 2010-2011
http://developer.android.com
http://www.wikipedia.com
57
FICHE DE RENSEIGNEMENTS
Nom : ANDIHARIJAONA
Prénoms : Jacques Faniriantsoa
Adresse de l’auteur : Lot 2II 387 bis Mahalavolona Andoharanofotsy
Antananarivo 102 – Madagascar
Tel : +261 33 14 187 08
E-mail : [email protected]
Titre du mémoire :
« MISE EN ŒUVRE DE SERVICE MOBILE PERSONNEL SOUS SYSTEME ANDROID »
Nombre de pages : 58
Nombre de tableaux : 4
Nombre de figures : 26
Mots clés :
Android, Sms, Réseaux sans fil, Bluetooth
Directeur de mémoire :
Nom : RANDRIARIJAONA
Prénoms : Lucien Elino
Tel : +261 32 04 747 95
Email : [email protected]
58
RESUME
Nous sommes à l’ère de la numérique et les nouvelles technologies font une croissance extravagante.
La possibilité de communiquer, d’accéder à l’information en tout lieu et à tout moment est un
objectif que le monde des TIC a atteint pour faciliter les échanges. Actuellement, il n’est seulement
plus possible de profiter de ces avantages de mobilités mais aussi de personnaliser les
communications selon le vouloir de chaque individu. A travers ce mémoire, nous avons pu étudier
les réseaux sans fil et le système Android en matière de connectivités. La mise en œuvre d’un service
mobile personnel sous ce nouveau système d’exploitation a permis de montrer qu’il était possible
de pallier aux réseaux d’opérateurs dans une distance de quelques dizaines de mètres avec la
technologie Bluetooth. Il est possible de faire des échanges de messages courts entre deux terminaux
Android via la norme des télécommunications à faible portée qu’est la technologie Bluetooth.
ABSTRACT
We are at the era of numerical and new technologies make an extravagant growth. The possibility
of communicating, to reach information in any place and at any time is an objective that the world
of the TIC reached to facilitate the exchanges. Currently, it is not only possible any more to benefit
from these advantages of mobility but also to personalize the communications according to wanting
of each individual. The apparatuses being used to communicate are more and more sophisticated
and report the personality of its owner. Through this memory, we studied the wireless networks and
the Android system as regards connectivity. The implementation of a personal mobile service under
this new operating system made it possible to show that it was possible to mitigate the networks of
operators in a distance of a few tens of meters with Bluetooth technology. It is possible to make
exchanges of short messages between two Android terminals via the standard of
telecommunications with weak range which is Bluetooth technology.