Your Federal Quarterly Tax Payments are due April 15th Get Help Now >>

DéVELOPPEMENT D'UNE APPLICATION DE COMMUNICATION by changcheng2

VIEWS: 13 PAGES: 34

									DÉVELOPPEMENT
D’UNE APPLICATION
DE COMMUNICATION
BLUETOOTH SUR ANDROID
Projet de fin d’étude
VAP «Architecte de Services en Réseau»

Guillaume Faure et Maxime Raoust
Janvier 2010
Acteurs du projet
Étudiants

Guillaume Faure
Elève ingénieur en troisième année à Telecom SudParis
guillaume.faure@telecom-sudparis.eu

Maxime Raoust
Elève ingénieur en troisième année à Telecom SudParis
maxime.raoust@telecom-sudparis.eu


Encadrants

Laurent Bernard
Enseignant-chercheur à Telecom SudParis, département RST
laurent.bernard@telecom-sudparis.eu

Sébastien Leriche
Enseignant-chercheur à Telecom SudParis, département Informatique
sebastien.leriche@telecom-sudparis.eu


Avec l’aide de

Toko Luyeye
Ingénieur de recherche à Telecom SudParis
toko.luyeye@telecom-sudparis.eu




                                             Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 2
tAble des mAtières
5	   1	Présentation	du	projet

5          1.1 Le sujet

6          1.2 Nos objectifs

7	   2	Travail	réalisé

7          2.1 Étude préliminaire
7                 2.1.1 Obtention du SDK
7                 2.1.2 Environnement de travail
8                 2.1.3 Environnement de test
9                 2.1.4 Pile Bluetooth
9                 2.1.5 Ouverture
10                2.1.6 Tableau récapitulatif
11                2.1.6 Conclusion

12         2.2 Prise en main de l’environnement
12                 2.2.1 Présentation du SDK
15                 2.2.2 L’échec du Samsung Galaxy
16                 2.2.3 La victoire du Hero
17                 2.2.4 Application test

18         2.3 Le problème du profil PAN
18                2.3.1 Architecture d’Android
20                2.3.2 Profil PAN sous Android
20                2.3.3 Nouvelle orientation de notre problématique

21         2.4 Première solution
21                2.4.1 Théorie
22                2.4.2 Pratique
23                2.4.3 Bilan de la première solution




                                             Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 3
24         2.5 Deuxième solution
24               2.5.1 Présentation du NDK
25               2.5.2 Théorie
25               2.5.3 Pratique
27               2.5.4 Bilan de la deuxième solution

28	   3	Bilan

29	   4	Suite	du	projet

29         4.1 Tests de VoIP

30         4.2 Automatisation de l’application

30         4.3 Android Dev Phone

31	   Conclusion

32	   Bibliographie	et	références
32                 1 Documents relatifs au projet
32                 2 Liens Internet

34	   Charge	de	travail




                                             Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 4
1 présentAtion du projet
1.1 Le sujet



C
            e projet de déve-
            loppement sur
            téléphone mo-
            bile, encadré par
Laurent Bernard du dépar-
tement RST de Telecom Sud-
Paris et Sébastien Leriche du
département Informatique,
s’insère dans un projet de
recherche plus large mené
à Telecom SudParis à la demande de la RATP.            technologie de réseau d’accès et d’autre part
En effet, dans le cadre de la modernisation des        une disponibilité du service pour l’usager sur de
services de télécommunication entre agents et          multiples plate-formes pour smartphones (ou
usagers, la RATP souhaite mettre à profit les évo-     ordiphones, la traduction officielle depuis peu).
lutions observées dans les technologies de l’in-
formation et de la communication en faveur des             Le schéma ci-contre présente l’architecture
personnes à mobilité réduite.                          réseau simplifiée qui supportera le service en
                                                       question.
     Elle a dans ce but fait appel à Telecom Su-
dParis pour étudier la faisabilité d’un service             Les premiers travaux menés ont démontré
d’interphonie mobile visant à mettre en rela-          la faisabilité d’un tel service grâce à la mise en
tion les usagers concernés avec un agent RATP.         œuvre d’une plate-forme d’expérimentation
L’idée est de permettre à l’usager de connecter        et de tests de communications entre usager et
simplement son téléphone mobile à un point             agent. Ces résultats concluants ont été réalisés
d’accès et d’accéder au service qui lui permettra      avec un smartphone Sony-Ericsson embarquant
d’établir une communication bidirectionnelle           le système d’exploitation Symbian. Mais d’autres
avec un agent sans utiliser le réseau d’un quel-       tests, notamment avec des smartphones em-
conque opérateur GSM.                                  barquant Windows Mobile, ont mis en évidence
                                                       des verrous technologiques qui peuvent éven-
    Les deux aspects importants pour ce service        tuellement être levés moyennant des dévelop-
sont d’une part l’utilisation de Bluetooth comme       pements spécifiques.



                                                 Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 5
1.2 Nos objectifs



L
         a faisabilité d’un tel service de com-                »»Choisir celui qui semble le plus adapté à
         munication a déjà été démontrée sur                      la mise en place du service
         quelques supports. Cependant, elle de-                »»Développer un prototype d’application
         vra à terme avoir été démontrée sur la                   client permettant d’accéder au service
plupart des environnements pour smartphone                        sur la plate-forme choisie
existant aujourd’hui. Notre équipe de projet
ASR a donc eu pour tâche d’étudier cette fai-                 La fenêtre temporelle de notre projet ASR
sabilité sur un support n’ayant pas encore fait          étant assez courte (environ 10 semaines) et
l’objet d’études, parmi ceux-ci : Mac OSX Mobile         ce sujet nécessitant un investissement impor-
(ou iPhone OS, embarqué par exemple sur les              tant, un calendrier a dû être rapidement mis en
Iphone 3GS) et Android (embarqué par exemple             place. Des réunions d’avancement avec nos en-
sur le Samsung Galaxy). Nos objectifs de projet          cadrants étaient organisées toutes les deux se-
à proprement parler furent les suivants :                maines. D’autre part, nous devions également
                                                         donner régulièrement dans le cadre du projet
    »»Prendre connaissance de tous les tra-
      vaux effectués dans le cadre du projet             des retours à l’équipe de projet RATP, par l’inter-
      global                                             médiaire de réunions d’échange ou de rapports
                                                         écrits.
    »»Explorer les possibilités offertes par les
      environnements iPhone et Android
                                                             Nous avons donc mis en place le planning
    »»Fournir une étude comparative de ces               prévisionnel ci-contre.
      deux supports




                                                   Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 6
2 trAvAil réAlisé


A
            près avoir pris connaissance du sujet, une réunion de démarrage avec l’ensemble de
            l’équipe de projet de Telecom SudParis a eu lieu, afin que nous puissions prendre connais-
            sance de tous les avancements effectués jusqu’à présent sur le projet global. Les diffé-
            rents rapports nous ont été transmis, et leur lecture nous a permis d’avoir une vision
plus précise du contexte et des moyens dont nous disposions pour mener à bien notre projet. Nous
présentons dans cette partie les différentes étapes de notre travail.



2.1 Étude préliminaire
     Notre premier travail a été l’étude compara-       2.1.2 Environnement de travail
tive des environnements iPhone OS et Android,
afin de choisir la plate-forme sur laquelle nous           C’est principalement à ce niveau que ces
allions nous concentrer. Voici les éléments que         deux environnements se sont avérés différents.
nous avons étudiés et retenus pour notre com-
paraison.                                               Environnement de développement
                                                             L’environnement de développement pour
2.1.1 Obtention du SDK                                  l’iPhone est Xcode. C’est l’environnement de
                                                        développement utilisé pour toutes les techno-
     Développer sur un iPhone ou sur Android            logies Apple, c’est pourquoi c’est outil n’est dis-
nécessite l’installation d’un «kit de développe-        ponible que pour Mac OS. Le développement
ment logiciel» (ou SDK), fourni par les concep-         d’applications Android est possible aussi bien
teurs du système. Dans le cas d’Android, cet            sur Eclipse, que sur Apache Ant ou JDK. C’est
outil est totalement libre d’accès et gratuit, dis-     pourquoi le développement d’applications An-
ponible en téléchargement sur le portail des dé-        droid est possible aussi bien sur Windows que
veloppeurs d’Android. Le SDK pour iPhone OS             sur Linux ou Mac.
est également gratuit et disponible sur le portail
des développeurs d’Apple, mais nécessite une            Langage utilisé
inscription gratuite à la communauté des déve-              Le développement d’applications pour An-
loppeurs Apple.                                         droid se fait entièrement en Java. Java est un
                                                        puissant langage orienté objet, utilisé très lar-
                                                        gement dans le monde du développement. Le
                                                        développement d’applications pour iPhone OS



                                                  Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 7
se fait avec Objective C, une extension du lan-
gage C, orienté objet et réflexif.                              http://www.apple.com/iphone/apps-for-iphone/

Accès à la documentation                                      Il est nécessaire pour publier des applica-
      Dans les deux cas, on dispose d’une part            tions sur iPhone de souscrire à un des deux pro-
d’une riche documentation sur les sites officiels         grammes pour développeurs proposés:
de développement des deux plate-formes, et
d’autre part d’une communauté bien vivante de                   http://developer.apple.com/iphone/program/apply.html
développeurs. Il existe donc de nombreux sites,
blogs et forums, professionnels ou amateurs,
                                                                »»Le programme standard, à 99$, permet
traitant du développement sur ces deux plate-                      aux développeurs de publier des appli-
formes. La documentation officielle d’Android                      cations gratuites ou payantes sur l’App
semble cependant plus claire que celle propo-                      Store
sée pour l’iPhone OS.
                                                                »»Le programme entreprise, à 299$, per-
                                                                   met aux sociétés de plus de 500 em-
Publication d’applications
                                                                   ployés de créer des applications pro-
     Les deux plate-formes permettent de
                                                                   priétaires et de les distribuer de manière
rendre disponibles les applications aux utilisa-
                                                                   privée au sein de leur entreprise
teurs finaux via une plate-forme de télécharge-
ment intégrée aux terminaux.
                                                          2.1.3 Environnement de test
      Android propose la plate-forme Android
Market pour la publication des applications.                   Il est également très important de pouvoir
Notons qu’a l’heure où nous écrivons ces lignes,          effectuer des tests facilement et rapidement à
il y a environ 20 000 applications sur l’Android          chaque étape du développement, sans avoir à
Market.                                                   installer à chaque fois son application sur un ter-
                                                          minal. Heureusement, dans les deux cas, les SDK
    http://www.android.com/market/                        intègrent un simulateur d’environnement d’exé-
                                                          cution (émulateur) reproduisant sur la machine
    Pour publier une application sur l’Android            du développeur le comportement du téléphone
Market, il faut s’inscrire sur le site en question et     et permettant de tester le fonctionnement de
payer des frais d’inscription de 25$.                     l’application sur un terminal virtuel. Cependant,
                                                          ces simulateurs ont des fonctionnalités moindre
    http://market.android.com/publish/signup              qu’un vrai terminal; dans les deux cas, l’émula-
                                                          teur ne propose pas de gestion du Bluetooth.
    Apple propose la fameuse plate-forme App
Store, pionnière, avec à ce jour environ 200 000
applications.



                                                    Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 8
2.1.4 Pile Bluetooth                                2.1.5 Ouverture

     Dans un système d’exploitation, les fonc-           Les deux plate-formes présentent chacune
tionnalités Bluetooth sont gérées par un com-       quelques limitations. Cependant, des solutions
posant logiciel du coeur du système appelé          officieuses existent pour les contourner. Même
«pile Bluetooth» (ou «Bluetooth stack»). Compa-     si ces solutions ne sont pas viables dans un en-
rons les piles Bluetooth de chacun des environ-     vironnement de production, elle permettent de
nements.                                            faire des expérimentations sur les différentes
                                                    plate-formes.
Android
     Android contient Bluez, la pile Bluetooth           Certains terminaux embarquant Android
open source utilisée par le noyau Linux.            ne sont pas mis à jour par les constructeurs
                                                    lorsqu’une nouvelle version d’Android est ren-
    http://www.bluez.org/                           due disponible. Cependant, une technique offi-
                                                    cieuse permet de modifier la version d’Android
    D’après la documentation officielle d’An-       présente sur le terminal («flasher la ROM»). Cette
droid, le profil Bluetooth PAN n’est pas encore     technique permet ainsi d’installer une ROM al-
supporté officiellement dans Android 2.1. Ce-       ternative, soit avec plus de fonctionnalités, soit
pendant, le démon «pand» permettant d’ef-           avec un système plus récent ce qui peut être in-
fectuer des connexions Bluetooth PANU est           téressant pour le développeur si une nouvelle
compilé dans le système et peut être utilisé de     version d’Android intègre la gestion du profil
manière expérimentale (voir paragraphe sur la       Bluetooth PAN avec le rôle PANU.
première approche).
                                                         Une manipulation officieuse existe aussi
iPhone                                              pour l’iPhone. Cette opération appelée «jail-
     La documentation de l’iPhone fait très         break» consiste à modifier les droits d’accès à
peu état du Bluetooth. Il semble que les déve-      la partition système afin de pouvoir modifier
loppeurs n’aient aucun accès aux couches bas        directement le système de l’appareil et y ins-
niveau de la pile Bluetooth. Nous avons seule-      taller des applications alternatives. Il semble
ment trouvé des méthodes haut niveau (par           que beaucoup de choses soient faisables sur
exemple dans la librairie GameKit, pour connec-     un iPhone jailbreaké. Malheureusement peu de
ter deux téléphones via Bluetooth). Même si         documentation existe pour les développeurs, la
une partie du profil PAN est implémenté (PAN-       communauté ne s’exposant que très peu sur In-
NAP pour l’utilisation du terminal comme mo-        ternet. Notons que cette manipulation annule la
dem Internet), le rôle PANU ne semble pas être      garantie du téléphone et qu’Apple fait tout pour
présent.                                            rendre cette manipulation impossible.




                                              Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 9
2.1.6 Tableau récapitulatif

                              iPhone OS                                Android

 SDK                          iPhone SDK                               Android SDK

 Obtention du SDK             Gratuit, sur inscription                 Gratuit

 IDE supportés                Xcode                                    Eclipse, JDK, Apache Ant

 Plate-forme de dévelop-      Mac                                      Windows, Mac, Linux
 pement

 Langage applicatif           Objective C                              Java

 Portail des développeurs     http://developer.apple.com/              http://developer.android.
                              iphone                                   com


 Emulateur                    Oui                                      Oui

 Gestion du Bluetooth         Non                                      Non
 dans l’émulateur

 Plate-forme de publica-      App Store                                Android Market
 tion des applications

 Frais d’inscription à la     99$ ou 299$                              25$
 plate-forme de publica-
 tion




                                          Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 10
2.1.6 Conclusion                                      dérable et faciliterait grandement l’organisation
                                                      du travail.
     Cette étude préliminaire a fait apparaître
les forces et faiblesses de chacun des environ-       L’ouverture
nements proposés, de sorte que nous avons pu                Cette étude nous a permis de voir que
faire le choix de notre environnement de déve-        l’étendue des possibilités en terme de déve-
loppement. Nous avons décidé de concentrer            loppement Bluetooth sur iPhone OS est très
nos efforts sur Android (avec le Samsung Galaxy       limitée. Certaines fonctions haut niveau sont
acheté par le département RST de Telecom Su-          disponibles, mais ne correspondent pas à nos
dParis), et ce principalement pour deux raisons :     besoins. Le développeur n’a par ailleurs pas suf-
                                                      fisamment accès aux couches bas niveau pour
La portabilité                                        implémenter ce type de fonctionnalité. An-
     Le développement d’applications pour An-         droid, quant à lui, dispose d’une API Bluetooth
droid peut se faire sur de nombreux systèmes          qui semble plus complète. Si elle ne permet pas
(Windows, Mac, Linux) alors que le développe-         encore d’effectuer des connexions Bluetooth
ment d’applications pour iPhone OS est réservé        PANU, il est raisonnable de penser que l’implé-
aux possesseurs de Mac. Etant deux sur le projet      mentation de ces fonctionnalités aura lieu tôt
et Maxime habitant à Paris, nous avons estimé         ou tard. En attendant et dans le cadre de l’étude
que le fait de pouvoir travailler séparément sur      de faisabilité, la solution de l’utilisation du dé-
nos machines personnelles (des PC sous Win-           mon expérimental «pand» nous est apparue
dows) représenterait un gain de temps consi-          comme une solution intéressante.




    Ce choix étant fait, nous avons rapidement récupéré le Samsung Galaxy, et avons commencé
nos premiers pas dans le monde merveilleux d’Android.




                                               Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 11
2.2 Prise en main de l’environnement



L
       a première étape de notre travail avec           liées à Android. Le tout est très bien fait et per-
       l’environnement Android a été d’appré-           met de rapidement être confortable vis-à-vis du
       hender le SDK, l’architecture et le déve-        développement sur Android.
       loppement d’une application ainsi que
son déploiement sur un terminal embarquant              Le SDK Android
Android.                                                     L’outil le plus important est le SDK Android.
                                                        Facile à installer, il permet de télécharger tous
2.2.1 Présentation du SDK                               les outils indispensables au développement
                                                        d’applications. Un petit logiciel permet d’abord
    Google a mis en place un grand nombre               de télécharger les différentes versions du SDK
d’outils pour aider les développeurs Android.           (une version du SDK par version d’Android : 1.4,
                                                        1.5, 1.6, 2.0 etc.). Il permet également de télé-
Le portail des développeurs                             charger les différentes versions des Google APIs
     La première chose à visiter est le portail des     (APIs pour intégrer des fonctionnalités liées aux
développeurs Android, mis en place par Google.          services Google tels que Maps etc.) ou de la do-
                                                        cumentation JavaDoc. Son fonctionnement est
                                                        similaire aux gestionnaires de paquets de Linux.




    http://developer.android.com/

     Très complet, ce site présente Android, ex-
plique comment installer et utiliser les différents
outils (SDK, NDK etc.), propose un ensemble de
tutoriels et articles concernant le développe-
ment d’applications Android, expose la réfé-
rence de l’API Android ainsi que les actualités



                                                 Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 12
ADT pour Eclipse
     Eclipse est l’Environement de Développe-       un plugin pour Eclipse (un plugin est un module
ment Intégré (ou IDE) le plus largement utilisé     qui complète un logiciel hôte pour lui apporter
pour la programmation Java; très performant, il     de nouvelles fonctionnalités).
est de plus gratuit et open source.
                                                         Android Development Tools, ou ADT, est
     http://www.eclipse.org/                        très complet et surtout très pratique : concep-
                                                    tion graphique d’interfaces utilisateur, debug
    Le langage privilégié pour le développe-        distant sur un téléphone, gestion de l’architec-
ment d’applications Android est justement           ture de fichiers d’une application etc.
Java. Google a donc tout naturellement conçu




                                             Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 13
Emulateur
     Nous l’avons évoqué plus haut, le SDK pro-     de voir exactement à quoi ressemblera son ap-
pose un émulateur Android. Il permet de lancer      plication sur un matériel réel.
sur la machine du développeur un terminal vir-
tuel représentant à l’écran un téléphone embar-           Rappelons cependant que l’émulateur ne
quant Android. C’est bien évidemment un outil       propose pas toutes les fonctionnalités d’un vrai
indispensable pour le développement mobile. A       téléphone. Il ne permet par exemple pas d’ému-
chaque version d’Android est associée une ver-      ler la gestion du Bluetooth.
sion de l’émulateur, permettant au développeur




                                             Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 14
2.2.2 L’échec du Samsung Galaxy

    Nous venons de voir
que l’émulateur Android
                                                                               »»     Le driver standard
                                                                               permet d’interagir avec
ne permet pas la gestion
                                                                               le système d’exploitation
du Bluetooth. Or, nous avi-
                                                                               pour les usages standards :
ons bien évidemment be-                                                        synchronisation du télé-
soin de cette fonctionnalité                                                   phone avec les contacts de
pour l’application d’inter-                                                    l’ordinateur, le calendrier
phonie. Le département                                                         etc.
RST de Telecom SudParis a
donc fait l’acquisition d’un
                                                                               »»   Le driver ADB est
                                                                             le driver dédié aux déve-
téléphone embarquant An-
                                                                             loppeurs. Il permet de dé-
droid : le Samsung Galaxy.
                                                                             ployer sur le téléphone une
                                                                             application en développe-
      La configuration du                                                    ment, et de débuguer une
Samsung Galaxy est tout à                                                    application tournant sur
fait classique :                                                             le téléphone depuis l’IDE
    »»Android 1.5                                             Eclipse sur l’ordinateur du développeur.

    »»Écran tactile AMOLED HVGA 3.2Mp                    En pratique, le driver ADB ne fonctionne
    »»3G, WiFi b/g, Bluetooth, GPS                   pas avec le Samsung Galaxy. Nous ne le savions
                                                     pas au début et nous avons ainsi perdu beau-
    »»8Go de mémoire interne et port mi-             coup de temps avec ce problème. Voici l’extrait
      croSDHC
                                                     d’un article trouvé plus tard sur Frandroid, un
    »»115 x 56 x 11,9 mm                             excellent portail francophone dédié à Android:

     Sur le papier, ce téléphone était donc par-           Enfin pour les développeurs, sachez que le fonctionnement
fait pour nous permettre de travailler sur le        d’adb sur le Samsung reste pour le moment approximatif et des
projet dans de bonnes conditions. En pratique,       solutions non officielles existent.
nous avons rencontré beaucoup de difficultés
et nous avons ainsi perdu du temps avec ce ma-            http://www.frandroid.com/4178/comparatif-htc-hero-et-
tériel.                                              samsung-galaxy/

    Lorsqu’un terminal Android est branché sur            Nous étions ainsi complètement bloqués
un ordinateur via son port USB, deux types de        sur le projet. Il nous fallait absolument trouver
drivers permettent de gérer le matériel :            une solution pour pouvoir concrètement
                                                     déployer une application sur un matériel.



                                              Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 15
2.2.3 La victoire du Hero

    Le département Informatique de Telecom
                                                           »»3G, WiFi 802.11b/g, Bluetooth, GPS
SudParis a fait l’acquisition de deux téléphones           »»Processeur Qualcomm MSM7200A
embarquant Android, des HTC Hero, a peu près                  528MHz
au moment où le département RST a acheté le                »»288MB de RAM
Samsung Galaxy. Ils ont donc gracieusement ac-
cepté de nous prêter un HTC Hero le temps du               »»512MB de mémoire interne et slot mi-
                                                              croSDHC
projet.
                                                           »»112 x 56.2 x 14.35 mm
    Voici les caractéristiques du HTC Hero:
                                                          Le HTC Hero est très bien géré par le driver
    »»Android 1.5 avec une couche graphique
      personnalisée développée par HTC               ADB. Nous pouvions ainsi facilement déployer
                                                     nos applications sur le téléphone. Nous étions
    »»Écran TFT LCD tactile multi-touch de           alors dans de bonnes conditions pour continuer
      3,2Mp (320 x 480)                              notre travail sur le projet.




                                              Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 16
2.2.4 Application test

     Rien de mieux pour s’habituer à un environnement de développement que de pratiquer cet
environnement. C’est pourquoi nous avons commencé par développer une application de test pour
appréhender les concepts liés aux applications Android : architecture de l’application, manifeste de
l’application, architecture et conception des interfaces utilisateur, «Activities» et «Services» (qui per-
mettent d’afficher une fenêtre ou de lancer un service en tâche de fond) et liens entre ces entités,
persistance des données etc.




    Ce travail nous a confortés dans l’idée que le SDK Android est vraiment agréable à utiliser: bien
conçus, les différents outils permettent de faire gagner beaucoup de temps au développeur. Le SDK
Android est donc un modèle d’ergonomie.




                                                Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 17
2.3 Le problème du profil PAN


L
         e sujet de notre projet précise que notre      profil PAN implémente différents rôles, dont le
         application de communication doit se           rôle PAN-U (pour PAN-User, utilisateur du ré-
         connecter au réseau de la RATP en uti-         seau) dont va se servir notre téléphone et le
         lisant la technologie Bluetooth. Cette         rôle PAN-NAP (pour PAN-Network Access Point,
technologie de communication sans fil propose           ou point d’accès réseau) qui sera utilisé sur les
différents «profils» de communication, qui cor-         points d’accès de la RATP. Nous avons donc be-
respondent à des spécifications fonctionnelles          soin d’accéder au profil PAN sous Android pour
liés à un usage particulier. Il existe de nombreux      effectuer la connexion au point d’accès.
profils Bluetooth : le profil HeadSet par exemple,
qui permet de gérer la connexion Bluetooth              2.3.1 Architecture d’Android
entre un ordinateur et des écouteurs sans fils,
ou encore le File Transfer Profile, utilisé pour le          Pour bien comprendre comment accéder
transfert de fichiers entre deux appareils. Dans        à ce profil, commençons par détailler l’architec-
notre cas, le smartphone doit se connecter au           ture du système Android. Le portail des déve-
point d’accès en utilisant le profil PAN, pour          loppeurs Android nous présente l’architecture
«Personal Area Network», qui est un profil gé-          du système avec le schéma ci-contre.
néral pour la connexion à un réseau local. Ce




                                                 Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 18
Linux Kernel                                            riches et de tirer partie d’un maximum de fonc-
     Android s’appuie sur le noyau Linux 2.6            tionnalités. Les développeurs ont donc accès
pour les services système de base tels que la sé-       aux même fonctionnalités que celles utilisées
curité, la gestion de la mémoire et des proces-         par les applications fournies avec Android. Toute
sus, le réseau et la gestion des drivers. Le noyau      application Android repose sur un ensemble de
sert de couche d’abstraction entre le matériel et       services et systèmes parmi lesquels :
le reste de la pile logicielle.
                                                              »»Un ensemble de «Views» permettant de
                                                                 construire l’interface graphique de l’ap-
Android Runtime                                                  plication : listes, grilles, champs textes,
     Android inclut un ensemble de librairies                    images, et même intégration d’un navi-
fournissant la plupart des fonctionnalités des                   gateur web ou d’une vue Google Maps
librairies standard de Java. Chaque application
Android s’exécute dans un processus, avec sa
                                                              »»Des «Content Providers» qui permettent
                                                                 aux applications d’accéder à des don-
propre instance de la machine virtuelle Java,
                                                                 nées d’autres applications ou de parta-
appelée Dalvik. Dalvik a été écrit pour optimi-
                                                                 ger ses propres données
ser l’exécution d’une multitude d’instances de
la machine virtuelle, avec une empreinte mé-                  »»Un «Ressource Manager» pour accéder à
moire réduite. Dalvik s’appuie sur le noyau Linux                des éléments autres que du code : don-
pour les fonctionnalités bas-niveau tels que les                 nées textuelles traduites, images, des-
                                                                 criptions XML d’interfaces graphiques
threads ou la gestion de la mémoire.
                                                                 etc.
Libraries                                                     »»Un «Activity Manager» pour gérer le
     Android fournit un ensemble de librairies                   cycle de vie de l’application
C/C++ utilisées par différents composants du
système. Ces fonctionnalités sont rendues dis-               Ce rapide survol de l’architecture du sys-
ponibles aux développeurs au travers du fra-            tème nous permet de mieux comprendre com-
mework d’application d’Android. On trouve               ment fonctionne une application Android.
parmi ces librairies: librairie C standard, moteurs     Confinée dans la couche la plus haute, elle ac-
d’affichage 2D et 3D, SQLite, rendu des polices         cède au système uniquement via les APIs Java
de caractères etc.                                      exposées par la couche Application Framework.
                                                        Ainsi, si une fonctionnalité est présente dans le
Application Framework                                   noyau Linux (couche rouge sur le schéma) ou
     Le framework d’application est la couche           dans les libraires système (couche verte), mais
qui nous intéresse tout particulièrement. C’est         qu’elle n’est pas reliée au framework d’applica-
elle qui fait le lien, grâce à un ensemble d’APIs       tion, elle ne sera pas utilisable directement dans
Java, entre le système et l’application. Étant          une application Android.
un système ouvert, Android permet aux dé-
veloppeurs de concevoir des applications très



                                                 Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 19
2.3.2 Profil PAN sous Android                            2.3.3 Nouvelle orientation de notre
                                                         problématique
     Le profil PAN est bien présent sous Android,
cependant il se trouve au niveau du noyau Li-                  Nous avons donc dû réviser nos objectifs
nux, et n’a pas encore été relié à l’API Java de dé-     initiaux, puisque le développement d’une ap-
veloppement d’applications. Cela signifie que            plication serait inutile tant que nous n’avons au-
les développeurs d’applications d’Android n’ont          cun moyen d’effectuer la connexion Bluetooth
pas accès à ce profil. Normalement le profil PAN         entre le téléphone et le point d’accès. Nous
se trouve donc hors de notre portée. Il est donc         nous sommes donc concentrés sur les diffé-
impératif pour nous de trouver un moyen de               rents moyens de faire marcher le profil PAN sous
contourner ce problème et de faire fonctionner           Android, et les tests de ses différents moyens,
une connexion utilisant le profil PAN sur le télé-       avant de se servir de ces résultats pour dévelop-
phone.                                                   per l’application finale. Nos recherches nous ont
                                                         permis d’identifier deux solutions, que nous dé-
                                                         taillons dans la partie suivante.




                                                  Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 20
2.4 Première solution

2.4.1 Théorie




L
        a gestion du Bluetooth dans une application passe par l’API Java Bluetooth d’Android. Mal-
        heureusement, au moment du projet, le profil Bluetooth PAN n’était pas intégré à l’API Java
        et donc pas utilisable directement dans une application. Nous venons de voir qu’Android est
        basé sur le noyau Linux 2.6 et il contient Bluez, la pile Bluetooth open source du noyau Linux.
Bluez supportant le profil PAN, on pouvait penser que le système contenait les briques nécessaires
pour la gestion du profil en question, même si ces briques n’étaient pas reliées au framework d’ap-
plication.

                                                                                                Le schéma ci-
                                                                                           contre     présente
                                                                                           l’architecture du
                                                                                           Bluetooth dans An-
                                                                                           droid. Les «briques
                                                                                           de base» du profil
                                                                                           PANU sont pré-
                                                                                           sentes dans le
                                                                                           rectangle «Bluez»
                                                                                           mais ne sont pas
                                                                                           reliées à l’API Java
                                                                                           comme c’est le cas,
                                                                                           par exemple, pour
                                                                                           RFCOMM.




                                               Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 21
      C’est le démon «pand» qui permet de gé-                 Dans notre cas, nous avions un téléphone
rer le profil PAN sous Linux (avec ses trois rôles      standard sans accès à l’utilisateur «root». Il suf-
PANU, NAP et GN). Cet exécutable est com-               fisait donc, en théorie, d’installer une ROM al-
pilé avec Android et est donc présent dans le           ternative et de lancer avec l’utilisateur «root» le
système. En théorie, il suffit donc de lancer ce        démon «pand» créant ainsi une connexion Blue-
démon pour établir une connexion Bluetooth              tooth PANU avec notre point d’accès Bluetooth.
PANU. Le problème est que le système Linux, et          Un article lu sur le blog d’un développeur nous
encore plus Android, est très restrictif en terme       montra que cette solution était théoriquement
de droits d’accès. Lorsqu’un usager (un utilisa-        possible. Notons que l’auteur de ce billet utili-
teur physique) interagit avec son terminal, il          sait un ADP !
utilise de manière transparente un utilisateur
virtuel sur le système (on peut faire l’analo-               http://mrkunkel.com/2009/08/11/the-other-tether-the-
gie avec les comptes utilisateurs de Windows).          g1android-as-a-bluetooth-panu-client/
Ainsi, l’utilisateur virtuel standard d’Android n’a
pas accès aux fichiers système et notamment au               Il est important de préciser que cette ap-
démon «pand». Pour y accéder, il faut bénéficier        proche est une «bidouille» et n’est donc absolu-
des droits d’accès du super utilisateur «root».         ment pas envisageable dans un environnement
                                                        de production. Les utilisateurs finaux de l’appli-
      Bien évidemment, par défaut «root» n’est          cation ont pour la plupart un système standard
pas utilisable. Il est cependant possible d’avoir       et donc pas l’accès à l’utilisateur virtuel «root».
accès à cette fonctionnalité en «débloquant»            Cette approche permet cependant de montrer
le téléphone. Cette manipulation officieuse             que le système contient les éléments néces-
consiste à modifier le système installé sur le té-      saires à l’établissement d’une connexion Blue-
léphone (flasher la ROM). Des acteurs de la com-        tooth PANU.
munauté ont ainsi rendu disponible des ROM
alternatives permettant, entre autre, l’accès à         2.4.2 Pratique
l’utilisateur «root».
                                                            En pratique, ce ne fut pas si simple. Nous
      Notons cependant qu’une solution offi-            avons installé différentes ROMs, chacune ve-
cielle (et plus pratique, comme nous le verrons         nant avec son lot d’erreurs et de difficultés.
plus loin) existe. Google distribue des «Android
Dev Phone» ou ADP, téléphones dédiés aux dé-            Modaco custom ROM
veloppeurs et complètement débloqués : l’uti-                http://android.modaco.com/content/htc-hero-hero-
lisateur «root» est accessible et il est facile de      modaco-com/292018/11-jan-3-1-modaco-custom-rom-for-
flasher la ROM pour installer une version modi-         gsm-hero/
fiée.
                                                              La «Modaco custom ROM» donne accès à
                                                        l’utilisateur root. Le démon «pand» n’est plus



                                                 Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 22
présent dans le système, mais il est présent dans                       Le portail Modaco propose également une
une application installée par défaut avec la ROM.                  ROM «stock rooted», c’est-à-dire une ROM usine
Nous n’avons cependant pas réussi à créer une                      avec comme seule modification l’accès à l’utili-
connexion Bluetooth PANU. Il nous manquait                         sateur «root». En théorie, cela devait résoudre
dans cette ROM des outils initialement fournis                     nos problèmes. En pratique, nous n’avons pas
dans Android tels que «hcitool».                                   trouvé le démon «pand» (ni d’ailleurs d’autres
                                                                   outils usuels tels que «locate», «which» ou
Firmware Smartphone France                                         même «grep» !). Nous avons donc eu des doutes
     http://android.smartphonefrance.info/actu.asp?ID=328          sur le fait que cette ROM soit réellement une
                                                                   ROM usine.
     Le portail Smartphone France propose lui
aussi une ROM alternative pour Android avec ac-                    2.4.3 Bilan de la première solution
cès à l’utilisateur «root». Nous avons avec cette
ROM rencontré les mêmes problèmes avec la                                Cette première approche se solde donc par
ROM Modaco, à savoir qu’il nous manquait cer-                      un échec. Parce que nous n’avions pas accès à
tains éléments clés du système pour faire fonc-                    l’utilisateur «root», nous n’avons pu lancer un
tionner le profil PAN.                                             appel système au démon «pand». Nous n’avons
                                                                   de plus pas réussi à obtenir un système réunis-
Modaco stock rooted ROM                                            sant tout ce dont nous avions besoin: démon
     http://android.modaco.com/content/htc-hero-hero-              «pand», outils associés et utilisateur «root».
modaco-com/291942/22-jan-stock-roms-radios-in-update-zip-
format-for-gsm-hero/




                                                            Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 23
2.5 Deuxième solution



C
            ette solution nous est apparue as-                         »»Amélioration des performances, un lan-
            sez tardivement (dans les deux der-                           gage compilé (c’est-à-dire du code natif )
            nières semaines du projet), grâce                             étant plus rapide que de passer par le
            aux conseils de Sébastien Leriche.                            bytecode de Java.
Elle consiste en l’utilisation du NDK.
                                                                 NDK
2.5.1 Présentation du NDK                                             Le NDK pour Android (Native Development
                                                                 Toolkit) propose un ensemble d’outils pour per-
JNI                                                              mettre aux développeurs d’utiliser le framework
                                                                 JNI dans leurs applications. Alors qu’une appli-
      D’après http://fr.wikipedia.org/wiki/Java_Native_          cation s’éxécute au sein de la machine virtuelle
Interface                                                        Dalvik, le NDK permet d’implémenter une partie
                                                                 de l’application en utilisant du code natif tel que
      Le JNI (Java Native Interface) est un fra-                 C ou C++. Cette technique permet d’une part
mework qui permet à du code Java s’exécutant                     d’améliorer les performances de certains algo-
à l’intérieur de la JVM d’appeler et d’être appe-                rithmes ou programmes, et d’autre part d’avoir
lé par des applications natives
(c’est-à-dire des programmes
spécifiques au matériel et au sys-
tème d’exploitation de la plate-
forme concernée), ou avec des
bibliothèques logicielles basées
sur d’autres langages (C, C++,
assembleur, etc.). Voici quelques
exemples d’utilisation de la JNI :
      »»Implémentation de
        fonctions du système
        d’exploitation qui ne sont
        pas présentes dans la
        bibliothèque Java
      »»Interfaçage avec des
        applications écrites dans
        d’autres langages




                                                          Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 24
accès à plus de fonctionnalités que ce que pro-        tout à fait envisageable dans un environnement
pose l’Application Framework. Le NDK fournit:          de production.
    »»Un ensemble d’outils pour compiler du
       code source C ou C++ pour Android               2.5.3 Pratique
    »»Une manière de déployer ce code com-                  Nous avons dans un premier temps télé-
       pilé sur un matériel Android et de l’inté-      chargé et installé le NDK Android sur nos ma-
       grer à une application Android écrite en
                                                       chines. La configuration s’est faite sans pro-
       Java
                                                       blème. Nous avons pu rapidement concevoir
    »»De la documentation, des exemples et             et développer une application permettant de
       des tutoriels                                   tester le NDK en faisant appel à une fonction
                                                       écrite en C++ depuis notre application Android
2.5.2 Théorie                                          écrite en Java. Les premiers tests furent donc
                                                       concluants.
      Dans notre cas, ce qui est intéressant est
de pouvoir accéder aux fonctionnalités du dé-               L’étape suivante a alors été de récupérer
mon «pand», situé dans la pile Bluetooth Bluez,        le code des fonctions qui nous intéressaient et
elle-même faisant partie du noyau Linux tour-          de les incorporer dans notre application. Nous
nant sur le téléphone. Bluez étant un projet           avons donc téléchargé le code source de Bluez
open source, l’idée était de récupérer le code         et regardé les sources. Malheureusement pour
source du démon «pand» et, grâce au NDK, de            nous, Bluez est un projet peu documenté avec
l’incorporer dans du code natif qui sera ensuite       un code source non commenté et assez obscur.
appelé par notre application. Évidemment,              Il nous a donc fallu un certain temps pour com-
cette méthode semble quelque peu archaïque,            prendre la structure du code et isoler la partie
puisqu’elle consiste à recopier du code déjà pré-      concernant l’établissement d’une connexion
sent dans le système au sein de notre applica-         Bluetooth PANU. Une fois cette partie isolée, il
tion. Cependant, son avantage principal est de         ne restait plus qu’à la recopier dans notre projet
ne pas nécessiter de modification préalable du         NDK et de compiler le tout pour Android.
téléphone, contrairement à la solution précé-
dente. En effet, elle n’a pas recours à des opéra-          Mais bien entendu, la compilation s’est avé-
tions nécessitant des droits d’administration, le      rée assez difficile. En effet, de nombreuses fonc-
flashage du téléphone est donc inutile. De plus,       tions déclarées dans ce code étaient en réalité
cette solution est potentiellement portable sur        définies dans d’autres fichiers. A l’édition des
tout système Android. Cette solution semble            liens, nous obtenions donc de nombreux mes-
donc la plus propre et la plus viable pour le pro-     sages d’erreur signalant des fonctions introu-
jet, tant que le profil PANU n’aura pas été implé-     vables. Aucune documentation n’étant dispo-
menté directement au sein de l’API Java. Elle est      nible, il a fallu pour chacune de ces fonctions
                                                       rechercher le fichier la définissant, l’incorporer



                                                Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 25
au projet, puis corriger toutes les nouvelles er-       MAC du point d’accès Bluetooth auquel on dé-
reurs de syntaxe et de dépendance liées à l’arri-       sire se connecter. Lorsque l’utilisateur appuie
vée de ces nouveaux fichiers dans le projet. Ce         sur le bouton de validation, une fonction native
fut donc un travail long et fastidieux.                 est appelée, avec en paramètre l’adresse MAC
                                                        fournie par l’utilisateur. Cette fonction essaie de
     Cependant, nous avons fini par réussir à éli-      se connecter au point d’accès avec le rôle PANU,
miner toutes les erreurs de compilation et d’édi-       puis affiche le code de retour du programme
tions des liens et à compiler notre application. En     (message d’erreur ou de succès) dans un boite
pratique, notre application affiche un champ de         de dialogue.
texte dans laquelle on peut renseigner l’adresse




                                                 Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 26
2.5.4 Bilan de la deuxième solution

     Nous n’avons malheureusement pas réussi à établir une connexion Bluetooth PANU avec succès
en utilisant cette méthode. Le programme compile et la fonction s’exécute sur le téléphone, mais
des erreurs se produisent à l’exécution. La suite du travail était donc de comprendre ces erreurs et de
les corriger. Nous n’avons cependant pas eu le temps de continuer ce travail dans le cadre de notre
projet.

     Cela a cependant permis de montrer que l’intégration du code source du démon «pand» via le
NDK est une solution très intéressante. Nous pensons qu’il s’agit de la meilleure solution tant que le
profil PANU ne sera pas officiellement intégré dans l’API Java de gestion du Bluetooth.




                                               Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 27
3 bilAn
    Nous avons donc terminé notre projet avec           c’est une expérience que nous pouvons donc
un bilan plutôt mitigé.                                 valoriser auprès des entreprises, aspect impor-
                                                        tant puisqu’à l’heure où nous écrivons ces lignes
     D’un côté, nous avons effectué un grand            nous nous apprêtons à entrer dans la vie active.
travail de tri de l’information et de résolution de
problèmes qui permettra aux groupes de travail                Par rapport au planning initial, la réparti-
après nous de gagner du temps et de directe-            tion effective du temps de travail s’est faite assez
ment travailler sur le coeur du problème.               différemment, puisque presque tout le temps
                                                        dédié au développement de l’application a été
     D’un autre côté, nous aurions aimé réussir à       utilisé en réalité pour les tests des différentes
déployer avec succès une connexion Bluetooth            solutions d’utilisation du profil PAN sous An-
PANU ! Notre intuition nous dit qu’avec tout le         droid. Notre plan de charge effectif est dispo-
travail que nous avons réalisé, le déploiement          nible en annexe, et reflète clairement cet état
effectif du profil PANU sous Android n’est pas          de fait. Rétrospectivement, nous nous sommes
loin. Nous regrettons donc ne pas avoir eu le           rendus compte que le planning initial aurait dû
temps de réussir cette tâche.                           prévoir qu’une phase de tests de connexion
                                                        Bluetooth serait nécessaire avant de se lancer
     Enfin, sur un plan plus personnel, nous            dans le développement de l’application, et cet
avons regretté de ne pas avoir eu plus de pro-          oubli n’a pas facilité l’organisation de notre tra-
grammation à faire, l’essentiel du travail réalisé      vail. Il aurait été cependant bien difficile de pré-
sur le projet étant de manipuler Android sous           voir quelle ampleur cette phase allait prendre,
toute ses coutures pour comprendre pourquoi             ainsi que tous les problèmes qu’elle allait nous
telle ou telle manipulation ne marchait pas. Ce         apporter. Nous estimons que ce temps de re-
fut cependant une expérience enrichissante et           cherche de solutions au problème du profil PAN
surtout très intéressante. Nous sommes mainte-          et de test nous a coûté plus de 60 heures de tra-
nant parfaitement à l’aise avec le système An-          vail chacun, soit environ 40% de notre temps
droid et le développement d’applications dé-            passé sur le projet.
diées. La technologie étant vraiment d’actualité,




                                                 Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 28
4 suite du projet

N
            otre projet ASR s’inscrivant dans le cadre d’un projet plus global, il nous semble important
            de faire en sorte que notre travail puisse être facilement réutilisé par la suite pour servir
            de base pour des développements futurs, d’autant plus que la reprise de nos travaux fera
            l’objet d’un projet PJ20 à Telecom SudParis cette année. Si nous n’avons pas pu remplir
tous les objectifs que nous nous étions fixés au début du projet, notre travail aura permis d’identifier
les problèmes majeurs liés au développement de cette application, et d’apporter une base de solu-
tion qui nous semble satisfaisante. Cette base permettra à l’équipe PJ20 de démarrer dans la bonne
direction et d’éviter les problèmes que nous avons eus à résoudre. Voici selon nous les prochaines
étapes du projet.


4.1 Tests de VoIP

     Une fois la connexion Bluetooth mise en            sibilité d’adapter et d’intégrer le code source de
place, l’utilisateur devra pouvoir appeler un           cette application à l’application dédiée au projet
agent RATP via un protocole de voix sur IP. L’ap-       (attention cependant aux questions de licence).
plication devra donc, après connexion Blue-
tooth et initialisation des paramètres réseau IP,             http://sipdroid.org/
lancer une application de VoIP permettant d’ap-
peler un poste sur le réseau. Une fois l’applica-            D’autres logiciels comme Fring ou NimBuzz
tion de VoIP choisie et reliée à notre application,     sont disponibles, mais semblent cependant
des tests devront être effectués pour s’assurer         moins intéressants, car ils nécessitent de créer
que la communication via ce logiciel fonctionne         un compte avant utilisation. D’autre part Fring
correctement. Il existe différents logiciels VoIP       nécessite pour fonctionner un accès à Internet,
disponibles sur Android, notamment «sipdroid»,          tandis que notre application est vouée à être
qui semble correspondre à nos besoins et fonc-          exécutée uniquement sur un réseau local. No-
tionner sur un réseau local. Il s’agit d’un projet      tons que ces informations sont théoriques et
open source, on peut ainsi s’intéresser à la pos-       qu’elles nécessitent d’être approfondies.




                                                 Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 29
4.2 Automatisation de l’application



U
             n des aspects fonctionnels qui doit         détaillant cette méthode peut être consulté à
             également être mis en place est             l’adresse suivante :
             l’automatisation de l’application.
             En effet, plutôt que de demander                  http://blog.bruary.net/2009/07/android-bluetooth-
à l’utilisateur d’entrer toutes les informations         hacking-using-ndk.html
nécessaires, l’application doit une fois lancée
découvrir d’elle-même tous les points d’accès                Notre travail effectué sur le projet est dis-
à portée, choisir d’elle-même celui auquel se            ponible sur un serveur SVN, avec toute la docu-
connecter, et une fois connectée lancer d’elle-          mentation correspondante.
même un appel vers un poste d’un agent de
la RATP. En ce qui concerne la découverte des                 http://code.google.com/p/gou1-sandbox/source/
points d’accès bluetooth, nous avons trouvé              browse/#svn/trunk/android
au cours de nos recherches une méthode qui
semblerait convenir. Nous n’avons pas pu la tes-              Nous nous proposons de plus de rencontrer
ter par manque de temps mais nous pensons                les futurs membres du projet PJ20 afin d’échan-
qu’elle mérite qu’on s’y attarde. L’article original     ger sur le projet, de faciliter la transition.


4.3 Android Dev Phone

     Google propose aux développeurs deux                correcte pour le HTC Hero illustre bien ces sou-
téléphones entièrement débloqués et sans au-             cis.
cun blocage de la carte SIM : accès à l’utilisateur
système «root», possibilité de flasher la ROM                 http://developer.android.com/guide/developing/device.
pour installer sa propre version du système An-          html#dev-phone-1
droid etc., ce matériel est l’idéal pour les déve-
loppeurs. Il serait éventuellement judicieux de              Le premier ADP, surnommé ADP1 et basé
faire l’acquisition d’un tel téléphone pour ré-          sur un HTC Dream/G1, est proposé au prix de
duire les soucis liés au matériel; la difficulté que     399$ sur le portail des développeurs Android.
nous avons eu à trouver une ROM alternative




                                                  Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 30
conclusion

C
            ette étude a permis de montrer que le déploiement de l’application de communication
            Bluetooth était théoriquement possible sur la plate-forme Android. Même si nos expéri-
            mentations concrètes ont échoué, nous sommes confiants qu’une solution est possible
            moyennant un travail supplémentaire. Il nous parait de plus judicieux de remarquer que
le profil PAN sera probablement implémenté, dans le futur, dans l’API Java Bluetooth d’Android. En
effet, chaque nouvelle version d’Android apporte son lot de nouveautés, y compris concernant le
Bluetooth; plusieurs profils ont ainsi été implémentés depuis Android 1.0. Aucune date n’est cepen-
dant officiellement prévue concernant l’intégration du profil PAN à Android.




                                             Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 31
bibliogrAphie et références
1 Documents relatifs au projet

Rapport de projet «Projet RATP - Voix sur Bluetooth»
Lidia Rodriguez Fernandez & Oussama Ben Cheikh Souguir, Juin 2007

Rapport de projet «Expérimentation de la voix sur Bluetooth»
Achille Notue Souop & Philippe Tagoum Fogang & Dafé Gnabaly, 2008

Rapport de stage «L’interphonie mobile sur Bluetooth»
Toko Luyeye, novembre 2008



2 Liens Internet

Portail des développeurs Apple (références, documentation, tutoriels)
http://developer.apple.com/

Portail des développeurs Android
http://developer.android.com/

Documentation officielle du Bluetooth sur Android
http://developer.android.com/guide/topics/wireless/bluetooth.html
http://developer.android.com/reference/android/bluetooth/package-summary.html

Etablissement d’une connexion Bluetooth PANU sur un ADP1
http://mrkunkel.com/2009/08/11/the-other-tether-the-g1android-as-a-bluetooth-panu-client/

Site officiel de Bluez
http://www.bluez.org/

Référence du NDK Android
http://developer.android.com/sdk/ndk/1.5_r1/index.html




                                                         Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 32
Application alternative de «Tethering» pour Android, utilisant le démon «pand»
http://code.google.com/p/android-wifi-tether/

Tutoriel sur le NDK avec utilisation du Bluetooth
http://blog.bruary.net/2009/07/android-bluetooth-hacking-using-ndk.html

API Bluetooth expérimentale pour Android
http://code.google.com/p/android-bluetooth/

Tutoriel en français pour flasher la ROM du HTC Hero
http://wiki.smartphonefrance.info/%28X%281%29S%28r1onbd554mjg4rntopujcy45%29%29/
Default.aspx?Page=hero-upgrade-modaco-rom&AspxAutoDetectCookieSupport=1

Communauté anglophone dédié au HTC Hero, nombreuses ROM disponibles
http://android.modaco.com/content/htc-hero-hero-modaco-com/




                                                        Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 33
chArge de trAvAil
                                                                                             Guillaume             Maxime
                                                            Total»en»heures                      153                 151
Tâche
Proposition calendrier                                                                              1                   1
Recherche de documentation sur Android et iPhone                                                   10                  15
Rédaction du rapport préliminaire                                                                   5                  4
Récupération du SDK Android, installation, configuration, premiers tests                            5                  5
Tests de pilotage du Samsung Galaxy via l'interface USB                                             5                  10
Construction d'une première application "bac à sable", installation sur HTC Hero                   10                  10
Préparation & présentation RATP                                                                     4                  4
Documentation sur le rootage, premier rootage du HTC Hero                                          10                  10
Tests d'exécution du démon "pand" sur Hero rooté                                                   20                  30
Documentation sur le NDK, récupération, installation                                                5                  4
Configuration du NDK, Développement d'une application Hello World utilisant le NDK                  3                  0
Récupération, étude du code de Bluez                                                               10                  5
Développement d'un prototype d'application de à un point d'accès Bluetooth utilisant le            20                  8
NDK
Rédaction rapport                                                                                  20                  20
Préparation présentation                                                                           10                  10
Réunions d'avancement                                                                              15                  15




                                                             Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 34

								
To top