Acteurs du projet
tudiants
Guillaume Faure Elve ingnieur en troisime anne Telecom SudParis guillaume.faure@telecom-sudparis.eu Maxime Raoust Elve ingnieur en troisime anne Telecom SudParis maxime.raoust@telecom-sudparis.eu
Encadrants
Laurent Bernard Enseignant-chercheur Telecom SudParis, dpartement RST laurent.bernard@telecom-sudparis.eu Sbastien Leriche Enseignant-chercheur Telecom SudParis, dpartement Informatique sebastien.leriche@telecom-sudparis.eu
Avec laide de
Toko Luyeye Ingnieur de recherche Telecom SudParis toko.luyeye@telecom-sudparis.eu
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 2
1 Prsentation du projet
1.1 Le sujet 1.2 Nos objectifs
7
7 7 7 8 9 9 10 11 12 12 15 16 17 18 18 20 20 21 21 22 23
2 Travail ralis
2.1 tude prliminaire 2.1.1 Obtention du SDK 2.1.2 Environnement de travail 2.1.3 Environnement de test 2.1.4 Pile Bluetooth 2.1.5 Ouverture 2.1.6 Tableau rcapitulatif 2.1.6 Conclusion 2.2 Prise en main de lenvironnement 2.2.1 Prsentation du SDK 2.2.2 Lchec du Samsung Galaxy 2.2.3 La victoire du Hero 2.2.4 Application test 2.3 Le problme du profil PAN 2.3.1 Architecture dAndroid 2.3.2 Profil PAN sous Android 2.3.3 Nouvelle orientation de notre problmatique 2.4 Premire solution 2.4.1 Thorie 2.4.2 Pratique 2.4.3 Bilan de la premire solution
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 3
24 24 25 25 27
2.5 Deuxime solution 2.5.1 Prsentation du NDK 2.5.2 Thorie 2.5.3 Pratique 2.5.4 Bilan de la deuxime solution
28 29
29 30 30
31 32
32 32
34
Charge de travail
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 4
1 prsentAtion du projet
1.1 Le sujet
e projet de dveloppement sur tlphone mobile, encadr par Laurent Bernard du dpartement RST de Telecom SudParis et Sbastien Leriche du dpartement Informatique, sinsre dans un projet de recherche plus large men Telecom SudParis la demande de la RATP. En effet, dans le cadre de la modernisation des services de tlcommunication entre agents et usagers, la RATP souhaite mettre profit les volutions observes dans les technologies de linformation et de la communication en faveur des personnes mobilit rduite. Elle a dans ce but fait appel Telecom SudParis pour tudier la faisabilit dun service dinterphonie mobile visant mettre en relation les usagers concerns avec un agent RATP. Lide est de permettre lusager de connecter simplement son tlphone mobile un point daccs et daccder au service qui lui permettra dtablir une communication bidirectionnelle avec un agent sans utiliser le rseau dun quelconque oprateur GSM. Les deux aspects importants pour ce service sont dune part lutilisation de Bluetooth comme
technologie de rseau daccs et dautre part une disponibilit du service pour lusager sur de multiples plate-formes pour smartphones (ou ordiphones, la traduction officielle depuis peu). Le schma ci-contre prsente larchitecture rseau simplifie qui supportera le service en question. Les premiers travaux mens ont dmontr la faisabilit dun tel service grce la mise en uvre dune plate-forme dexprimentation et de tests de communications entre usager et agent. Ces rsultats concluants ont t raliss avec un smartphone Sony-Ericsson embarquant le systme dexploitation Symbian. Mais dautres tests, notamment avec des smartphones embarquant Windows Mobile, ont mis en vidence des verrous technologiques qui peuvent ventuellement tre levs moyennant des dveloppements spcifiques.
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 5
a faisabilit dun tel service de communication a dj t dmontre sur quelques supports. Cependant, elle devra terme avoir t dmontre sur la plupart des environnements pour smartphone existant aujourdhui. Notre quipe de projet ASR a donc eu pour tche dtudier cette faisabilit sur un support nayant pas encore fait lobjet dtudes, parmi ceux-ci : Mac OSX Mobile (ou iPhone OS, embarqu par exemple sur les Iphone 3GS) et Android (embarqu par exemple sur le Samsung Galaxy). Nos objectifs de projet proprement parler furent les suivants :
Prendre connaissance de tous les travaux effectus dans le cadre du projet global
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 6
2 trAvAil rAlis
prs avoir pris connaissance du sujet, une runion de dmarrage avec lensemble de lquipe de projet de Telecom SudParis a eu lieu, afin que nous puissions prendre connaissance de tous les avancements effectus jusqu prsent sur le projet global. Les diffrents rapports nous ont t transmis, et leur lecture nous a permis davoir une vision plus prcise du contexte et des moyens dont nous disposions pour mener bien notre projet. Nous prsentons dans cette partie les diffrentes tapes de notre travail.
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 7
se fait avec Objective C, une extension du langage C, orient objet et rflexif. Accs la documentation Dans les deux cas, on dispose dune part dune riche documentation sur les sites officiels de dveloppement des deux plate-formes, et dautre part dune communaut bien vivante de dveloppeurs. Il existe donc de nombreux sites, blogs et forums, professionnels ou amateurs, traitant du dveloppement sur ces deux plateformes. La documentation officielle dAndroid semble cependant plus claire que celle propose pour liPhone OS. Publication dapplications Les deux plate-formes permettent de rendre disponibles les applications aux utilisateurs finaux via une plate-forme de tlchargement intgre aux terminaux. Android propose la plate-forme Android Market pour la publication des applications. Notons qua lheure o nous crivons ces lignes, il y a environ 20 000 applications sur lAndroid Market. http://www.android.com/market/ Pour publier une application sur lAndroid Market, il faut sinscrire sur le site en question et payer des frais dinscription de 25$. http://market.android.com/publish/signup Apple propose la fameuse plate-forme App Store, pionnire, avec ce jour environ 200 000 applications.
http://www.apple.com/iphone/apps-for-iphone/ Il est ncessaire pour publier des applications sur iPhone de souscrire un des deux programmes pour dveloppeurs proposs: http://developer.apple.com/iphone/program/apply.html
Le programme entreprise, 299$, permet aux socits de plus de 500 employs de crer des applications propritaires et de les distribuer de manire prive au sein de leur entreprise
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 8
2.1.5 Ouverture
Les deux plate-formes prsentent chacune quelques limitations. Cependant, des solutions officieuses existent pour les contourner. Mme si ces solutions ne sont pas viables dans un environnement de production, elle permettent de faire des exprimentations sur les diffrentes plate-formes. Certains terminaux embarquant Android ne sont pas mis jour par les constructeurs lorsquune nouvelle version dAndroid est rendue disponible. Cependant, une technique officieuse permet de modifier la version dAndroid prsente sur le terminal (flasher la ROM). Cette technique permet ainsi dinstaller une ROM alternative, soit avec plus de fonctionnalits, soit avec un systme plus rcent ce qui peut tre intressant pour le dveloppeur si une nouvelle version dAndroid intgre la gestion du profil Bluetooth PAN avec le rle PANU. Une manipulation officieuse existe aussi pour liPhone. Cette opration appele jailbreak consiste modifier les droits daccs la partition systme afin de pouvoir modifier directement le systme de lappareil et y installer des applications alternatives. Il semble que beaucoup de choses soient faisables sur un iPhone jailbreak. Malheureusement peu de documentation existe pour les dveloppeurs, la communaut ne sexposant que trs peu sur Internet. Notons que cette manipulation annule la garantie du tlphone et quApple fait tout pour rendre cette manipulation impossible.
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 9
Emulateur Gestion du Bluetooth dans lmulateur Plate-forme de publication des applications Frais dinscription la plate-forme de publication
Oui Non
Oui Non
App Store
Android Market
99$ ou 299$
25$
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 10
2.1.6 Conclusion
Cette tude prliminaire a fait apparatre les forces et faiblesses de chacun des environnements proposs, de sorte que nous avons pu faire le choix de notre environnement de dveloppement. Nous avons dcid de concentrer nos efforts sur Android (avec le Samsung Galaxy achet par le dpartement RST de Telecom SudParis), et ce principalement pour deux raisons : La portabilit Le dveloppement dapplications pour Android peut se faire sur de nombreux systmes (Windows, Mac, Linux) alors que le dveloppement dapplications pour iPhone OS est rserv aux possesseurs de Mac. Etant deux sur le projet et Maxime habitant Paris, nous avons estim que le fait de pouvoir travailler sparment sur nos machines personnelles (des PC sous Windows) reprsenterait un gain de temps consi-
drable et faciliterait grandement lorganisation du travail. Louverture Cette tude nous a permis de voir que ltendue des possibilits en terme de dveloppement Bluetooth sur iPhone OS est trs limite. Certaines fonctions haut niveau sont disponibles, mais ne correspondent pas nos besoins. Le dveloppeur na par ailleurs pas suffisamment accs aux couches bas niveau pour implmenter ce type de fonctionnalit. Android, quant lui, dispose dune API Bluetooth qui semble plus complte. Si elle ne permet pas encore deffectuer des connexions Bluetooth PANU, il est raisonnable de penser que limplmentation de ces fonctionnalits aura lieu tt ou tard. En attendant et dans le cadre de ltude de faisabilit, la solution de lutilisation du dmon exprimental pand nous est apparue comme une solution intressante.
Ce choix tant fait, nous avons rapidement rcupr le Samsung Galaxy, et avons commenc nos premiers pas dans le monde merveilleux dAndroid.
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 11
a premire tape de notre travail avec lenvironnement Android a t dapprhender le SDK, larchitecture et le dveloppement dune application ainsi que son dploiement sur un terminal embarquant Android.
lies Android. Le tout est trs bien fait et permet de rapidement tre confortable vis--vis du dveloppement sur Android. Le SDK Android Loutil le plus important est le SDK Android. Facile installer, il permet de tlcharger tous les outils indispensables au dveloppement dapplications. Un petit logiciel permet dabord de tlcharger les diffrentes versions du SDK (une version du SDK par version dAndroid : 1.4, 1.5, 1.6, 2.0 etc.). Il permet galement de tlcharger les diffrentes versions des Google APIs (APIs pour intgrer des fonctionnalits lies aux services Google tels que Maps etc.) ou de la documentation JavaDoc. Son fonctionnement est similaire aux gestionnaires de paquets de Linux.
http://developer.android.com/ Trs complet, ce site prsente Android, explique comment installer et utiliser les diffrents outils (SDK, NDK etc.), propose un ensemble de tutoriels et articles concernant le dveloppement dapplications Android, expose la rfrence de lAPI Android ainsi que les actualits
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 12
ADT pour Eclipse Eclipse est lEnvironement de Dveloppement Intgr (ou IDE) le plus largement utilis pour la programmation Java; trs performant, il est de plus gratuit et open source. http://www.eclipse.org/ Le langage privilgi pour le dveloppement dapplications Android est justement Java. Google a donc tout naturellement conu un plugin pour Eclipse (un plugin est un module qui complte un logiciel hte pour lui apporter de nouvelles fonctionnalits). Android Development Tools, ou ADT, est trs complet et surtout trs pratique : conception graphique dinterfaces utilisateur, debug distant sur un tlphone, gestion de larchitecture de fichiers dune application etc.
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 13
Emulateur Nous lavons voqu plus haut, le SDK propose un mulateur Android. Il permet de lancer sur la machine du dveloppeur un terminal virtuel reprsentant lcran un tlphone embarquant Android. Cest bien videmment un outil indispensable pour le dveloppement mobile. A chaque version dAndroid est associe une version de lmulateur, permettant au dveloppeur de voir exactement quoi ressemblera son application sur un matriel rel. Rappelons cependant que lmulateur ne propose pas toutes les fonctionnalits dun vrai tlphone. Il ne permet par exemple pas dmuler la gestion du Bluetooth.
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 14
Le driver standard permet dinteragir avec le systme dexploitation pour les usages standards: synchronisation du tlphone avec les contacts de lordinateur, le calendrier etc. Le driver ADB est le driver ddi aux dveloppeurs. Il permet de dployer sur le tlphone une application en dveloppement, et de dbuguer une application tournant sur le tlphone depuis lIDE Eclipse sur lordinateur du dveloppeur. En pratique, le driver ADB ne fonctionne pas avec le Samsung Galaxy. Nous ne le savions pas au dbut et nous avons ainsi perdu beaucoup de temps avec ce problme. Voici lextrait dun article trouv plus tard sur Frandroid, un excellent portail francophone ddi Android: Enfin pour les dveloppeurs, sachez que le fonctionnement dadb sur le Samsung reste pour le moment approximatif et des solutions non officielles existent. http://www.frandroid.com/4178/comparatif-htc-hero-etsamsung-galaxy/ Nous tions ainsi compltement bloqus sur le projet. Il nous fallait absolument trouver une solution pour pouvoir concrtement dployer une application sur un matriel.
Android 1.5 cran tactile AMOLED HVGA 3.2Mp 3G, WiFi b/g, Bluetooth, GPS 8Go de mmoire interne et port microSDHC
115 x 56 x 11,9 mm
Sur le papier, ce tlphone tait donc parfait pour nous permettre de travailler sur le projet dans de bonnes conditions. En pratique, nous avons rencontr beaucoup de difficults et nous avons ainsi perdu du temps avec ce matriel. Lorsquun terminal Android est branch sur un ordinateur via son port USB, deux types de drivers permettent de grer le matriel :
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 15
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 16
Ce travail nous a conforts dans lide que le SDK Android est vraiment agrable utiliser: bien conus, les diffrents outils permettent de faire gagner beaucoup de temps au dveloppeur. Le SDK Android est donc un modle dergonomie.
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 17
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 18
Linux Kernel Android sappuie sur le noyau Linux 2.6 pour les services systme de base tels que la scurit, la gestion de la mmoire et des processus, le rseau et la gestion des drivers. Le noyau sert de couche dabstraction entre le matriel et le reste de la pile logicielle. Android Runtime Android inclut un ensemble de librairies fournissant la plupart des fonctionnalits des librairies standard de Java. Chaque application Android sexcute dans un processus, avec sa propre instance de la machine virtuelle Java, appele Dalvik. Dalvik a t crit pour optimiser lexcution dune multitude dinstances de la machine virtuelle, avec une empreinte mmoire rduite. Dalvik sappuie sur le noyau Linux pour les fonctionnalits bas-niveau tels que les threads ou la gestion de la mmoire. Libraries Android fournit un ensemble de librairies C/C++ utilises par diffrents composants du systme. Ces fonctionnalits sont rendues disponibles aux dveloppeurs au travers du framework dapplication dAndroid. On trouve parmi ces librairies: librairie C standard, moteurs daffichage 2D et 3D, SQLite, rendu des polices de caractres etc. Application Framework Le framework dapplication est la couche qui nous intresse tout particulirement. Cest elle qui fait le lien, grce un ensemble dAPIs Java, entre le systme et lapplication. tant un systme ouvert, Android permet aux dveloppeurs de concevoir des applications trs
riches et de tirer partie dun maximum de fonctionnalits. Les dveloppeurs ont donc accs aux mme fonctionnalits que celles utilises par les applications fournies avec Android. Toute application Android repose sur un ensemble de services et systmes parmi lesquels :
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 19
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 20
2.4.1 Thorie
a gestion du Bluetooth dans une application passe par lAPI Java Bluetooth dAndroid. Malheureusement, au moment du projet, le profil Bluetooth PAN ntait pas intgr lAPI Java et donc pas utilisable directement dans une application. Nous venons de voir quAndroid 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 systme contenait les briques ncessaires pour la gestion du profil en question, mme si ces briques ntaient pas relies au framework dapplication. Le schma cicontre prsente larchitecture du Bluetooth dans Android. Les briques de base du profil PANU sont prsentes dans le rectangle Bluez mais ne sont pas relies lAPI Java comme cest le cas, par exemple, pour RFCOMM.
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 21
Cest le dmon pand qui permet de grer le profil PAN sous Linux (avec ses trois rles PANU, NAP et GN). Cet excutable est compil avec Android et est donc prsent dans le systme. En thorie, il suffit donc de lancer ce dmon pour tablir une connexion Bluetooth PANU. Le problme est que le systme Linux, et encore plus Android, est trs restrictif en terme de droits daccs. Lorsquun usager (un utilisateur physique) interagit avec son terminal, il utilise de manire transparente un utilisateur virtuel sur le systme (on peut faire lanalogie avec les comptes utilisateurs de Windows). Ainsi, lutilisateur virtuel standard dAndroid na pas accs aux fichiers systme et notamment au dmon pand. Pour y accder, il faut bnficier des droits daccs du super utilisateur root. Bien videmment, par dfaut root nest pas utilisable. Il est cependant possible davoir accs cette fonctionnalit en dbloquant le tlphone. Cette manipulation officieuse consiste modifier le systme install sur le tlphone (flasher la ROM). Des acteurs de la communaut ont ainsi rendu disponible des ROM alternatives permettant, entre autre, laccs lutilisateur root. Notons cependant quune solution officielle (et plus pratique, comme nous le verrons plus loin) existe. Google distribue des Android Dev Phone ou ADP, tlphones ddis aux dveloppeurs et compltement dbloqus : lutilisateur root est accessible et il est facile de flasher la ROM pour installer une version modifie.
Dans notre cas, nous avions un tlphone standard sans accs lutilisateur root. Il suffisait donc, en thorie, dinstaller une ROM alternative et de lancer avec lutilisateur root le dmon pand crant ainsi une connexion Bluetooth PANU avec notre point daccs Bluetooth. Un article lu sur le blog dun dveloppeur nous montra que cette solution tait thoriquement possible. Notons que lauteur de ce billet utilisait un ADP ! http://mrkunkel.com/2009/08/11/the-other-tether-theg1android-as-a-bluetooth-panu-client/ Il est important de prciser que cette approche est une bidouille et nest donc absolument pas envisageable dans un environnement de production. Les utilisateurs finaux de lapplication ont pour la plupart un systme standard et donc pas laccs lutilisateur virtuel root. Cette approche permet cependant de montrer que le systme contient les lments ncessaires ltablissement dune connexion Bluetooth PANU.
2.4.2 Pratique
En pratique, ce ne fut pas si simple. Nous avons install diffrentes ROMs, chacune venant avec son lot derreurs et de difficults. Modaco custom ROM http://android.modaco.com/content/htc-hero-heromodaco-com/292018/11-jan-3-1-modaco-custom-rom-forgsm-hero/ La Modaco custom ROM donne accs lutilisateur root. Le dmon pand nest plus
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 22
prsent dans le systme, mais il est prsent dans une application installe par dfaut avec la ROM. Nous navons cependant pas russi crer une connexion Bluetooth PANU. Il nous manquait dans cette ROM des outils initialement fournis dans Android tels que hcitool. Firmware Smartphone France http://android.smartphonefrance.info/actu.asp?ID=328 Le portail Smartphone France propose lui aussi une ROM alternative pour Android avec accs lutilisateur root. Nous avons avec cette ROM rencontr les mmes problmes avec la ROM Modaco, savoir quil nous manquait certains lments cls du systme pour faire fonctionner le profil PAN. Modaco stock rooted ROM http://android.modaco.com/content/htc-hero-heromodaco-com/291942/22-jan-stock-roms-radios-in-update-zipformat-for-gsm-hero/
Le portail Modaco propose galement une ROM stock rooted, cest--dire une ROM usine avec comme seule modification laccs lutilisateur root. En thorie, cela devait rsoudre nos problmes. En pratique, nous navons pas trouv le dmon pand (ni dailleurs dautres outils usuels tels que locate, which ou mme grep !). Nous avons donc eu des doutes sur le fait que cette ROM soit rellement une ROM usine.
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 23
C
JNI
ette solution nous est apparue assez tardivement (dans les deux dernires semaines du projet), grce aux conseils de Sbastien Leriche. Elle consiste en lutilisation du NDK.
Amlioration des performances, un langage compil (cest--dire du code natif ) tant plus rapide que de passer par le bytecode de Java. NDK Le NDK pour Android (Native Development Toolkit) propose un ensemble doutils pour permettre aux dveloppeurs dutiliser le framework JNI dans leurs applications. Alors quune application sxcute au sein de la machine virtuelle Dalvik, le NDK permet dimplmenter une partie de lapplication en utilisant du code natif tel que C ou C++. Cette technique permet dune part damliorer les performances de certains algorithmes ou programmes, et dautre part davoir
Daprs http://fr.wikipedia.org/wiki/Java_Native_ Interface Le JNI (Java Native Interface) est un framework qui permet du code Java sexcutant lintrieur de la JVM dappeler et dtre appel par des applications natives (cest--dire des programmes spcifiques au matriel et au systme dexploitation de la plateforme concerne), ou avec des bibliothques logicielles bases sur dautres langages (C, C++, assembleur, etc.). Voici quelques exemples dutilisation de la JNI :
Implmentation de
fonctions du systme dexploitation qui ne sont pas prsentes dans la bibliothque Java
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 24
accs plus de fonctionnalits que ce que propose lApplication Framework. Le NDK fournit:
2.5.3 Pratique
Nous avons dans un premier temps tlcharg et install le NDK Android sur nos machines. La configuration sest faite sans problme. Nous avons pu rapidement concevoir et dvelopper une application permettant de tester le NDK en faisant appel une fonction crite en C++ depuis notre application Android crite en Java. Les premiers tests furent donc concluants. Ltape suivante a alors t de rcuprer le code des fonctions qui nous intressaient et de les incorporer dans notre application. Nous avons donc tlcharg le code source de Bluez et regard les sources. Malheureusement pour nous, Bluez est un projet peu document avec un code source non comment et assez obscur. Il nous a donc fallu un certain temps pour comprendre la structure du code et isoler la partie concernant ltablissement dune connexion Bluetooth PANU. Une fois cette partie isole, il ne restait plus qu la recopier dans notre projet NDK et de compiler le tout pour Android. Mais bien entendu, la compilation sest avre assez difficile. En effet, de nombreuses fonctions dclares dans ce code taient en ralit dfinies dans dautres fichiers. A ldition des liens, nous obtenions donc de nombreux messages derreur signalant des fonctions introuvables. Aucune documentation ntant disponible, il a fallu pour chacune de ces fonctions rechercher le fichier la dfinissant, lincorporer
Une manire de dployer ce code compil sur un matriel Android et de lintgrer une application Android crite en Java
2.5.2 Thorie
Dans notre cas, ce qui est intressant est de pouvoir accder aux fonctionnalits du dmon pand, situ dans la pile Bluetooth Bluez, elle-mme faisant partie du noyau Linux tournant sur le tlphone. Bluez tant un projet open source, lide tait de rcuprer le code source du dmon pand et, grce au NDK, de lincorporer dans du code natif qui sera ensuite appel par notre application. videmment, cette mthode semble quelque peu archaque, puisquelle consiste recopier du code dj prsent dans le systme au sein de notre application. Cependant, son avantage principal est de ne pas ncessiter de modification pralable du tlphone, contrairement la solution prcdente. En effet, elle na pas recours des oprations ncessitant des droits dadministration, le flashage du tlphone est donc inutile. De plus, cette solution est potentiellement portable sur tout systme Android. Cette solution semble donc la plus propre et la plus viable pour le projet, tant que le profil PANU naura pas t implment directement au sein de lAPI Java. Elle est
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 25
au projet, puis corriger toutes les nouvelles erreurs de syntaxe et de dpendance lies larrive de ces nouveaux fichiers dans le projet. Ce fut donc un travail long et fastidieux. Cependant, nous avons fini par russir liminer toutes les erreurs de compilation et dditions des liens et compiler notre application. En pratique, notre application affiche un champ de texte dans laquelle on peut renseigner ladresse
MAC du point daccs Bluetooth auquel on dsire se connecter. Lorsque lutilisateur appuie sur le bouton de validation, une fonction native est appele, avec en paramtre ladresse MAC fournie par lutilisateur. Cette fonction essaie de se connecter au point daccs avec le rle PANU, puis affiche le code de retour du programme (message derreur ou de succs) dans un boite de dialogue.
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 26
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 27
3 bilAn
Nous avons donc termin notre projet avec un bilan plutt mitig. Dun ct, nous avons effectu un grand travail de tri de linformation et de rsolution de problmes qui permettra aux groupes de travail aprs nous de gagner du temps et de directement travailler sur le coeur du problme. Dun autre ct, nous aurions aim russir dployer avec succs une connexion Bluetooth PANU ! Notre intuition nous dit quavec tout le travail que nous avons ralis, le dploiement effectif du profil PANU sous Android nest pas loin. Nous regrettons donc ne pas avoir eu le temps de russir cette tche. Enfin, sur un plan plus personnel, nous avons regrett de ne pas avoir eu plus de programmation faire, lessentiel du travail ralis sur le projet tant de manipuler Android sous toute ses coutures pour comprendre pourquoi telle ou telle manipulation ne marchait pas. Ce fut cependant une exprience enrichissante et surtout trs intressante. Nous sommes maintenant parfaitement laise avec le systme Android et le dveloppement dapplications ddies. La technologie tant vraiment dactualit, cest une exprience que nous pouvons donc valoriser auprs des entreprises, aspect important puisqu lheure o nous crivons ces lignes nous nous apprtons entrer dans la vie active. Par rapport au planning initial, la rpartition effective du temps de travail sest faite assez diffremment, puisque presque tout le temps ddi au dveloppement de lapplication a t utilis en ralit pour les tests des diffrentes solutions dutilisation du profil PAN sous Android. Notre plan de charge effectif est disponible en annexe, et reflte clairement cet tat de fait. Rtrospectivement, nous nous sommes rendus compte que le planning initial aurait d prvoir quune phase de tests de connexion Bluetooth serait ncessaire avant de se lancer dans le dveloppement de lapplication, et cet oubli na pas facilit lorganisation de notre travail. Il aurait t cependant bien difficile de prvoir quelle ampleur cette phase allait prendre, ainsi que tous les problmes quelle allait nous apporter. Nous estimons que ce temps de recherche de solutions au problme du profil PAN et de test nous a cot plus de 60 heures de travail chacun, soit environ 40% de notre temps pass sur le projet.
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 28
4 suite du projet
otre projet ASR sinscrivant dans le cadre dun projet plus global, il nous semble important de faire en sorte que notre travail puisse tre facilement rutilis par la suite pour servir de base pour des dveloppements futurs, dautant plus que la reprise de nos travaux fera lobjet dun projet PJ20 Telecom SudParis cette anne. Si nous navons pas pu remplir tous les objectifs que nous nous tions fixs au dbut du projet, notre travail aura permis didentifier les problmes majeurs lis au dveloppement de cette application, et dapporter une base de solution qui nous semble satisfaisante. Cette base permettra lquipe PJ20 de dmarrer dans la bonne direction et dviter les problmes que nous avons eus rsoudre. Voici selon nous les prochaines tapes du projet.
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 29
n des aspects fonctionnels qui doit galement tre mis en place est lautomatisation de lapplication. En effet, plutt que de demander lutilisateur dentrer toutes les informations ncessaires, lapplication doit une fois lance dcouvrir delle-mme tous les points daccs porte, choisir delle-mme celui auquel se connecter, et une fois connecte lancer dellemme un appel vers un poste dun agent de la RATP. En ce qui concerne la dcouverte des points daccs bluetooth, nous avons trouv au cours de nos recherches une mthode qui semblerait convenir. Nous navons pas pu la tester par manque de temps mais nous pensons quelle mrite quon sy attarde. Larticle original
dtaillant cette mthode peut tre consult ladresse suivante : http://blog.bruary.net/2009/07/android-bluetoothhacking-using-ndk.html Notre travail effectu sur le projet est disponible sur un serveur SVN, avec toute la documentation correspondante. http://code.google.com/p/gou1-sandbox/source/ browse/#svn/trunk/android Nous nous proposons de plus de rencontrer les futurs membres du projet PJ20 afin dchanger sur le projet, de faciliter la transition.
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 30
conclusion
ette tude a permis de montrer que le dploiement de lapplication de communication Bluetooth tait thoriquement possible sur la plate-forme Android. Mme si nos exprimentations concrtes ont chou, nous sommes confiants quune solution est possible moyennant un travail supplmentaire. Il nous parait de plus judicieux de remarquer que le profil PAN sera probablement implment, dans le futur, dans lAPI Java Bluetooth dAndroid. En effet, chaque nouvelle version dAndroid apporte son lot de nouveauts, y compris concernant le Bluetooth; plusieurs profils ont ainsi t implments depuis Android 1.0. Aucune date nest cependant officiellement prvue concernant lintgration du profil PAN Android.
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 31
bibliogrAphie et rfrences
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 Exprimentation de la voix sur Bluetooth Achille Notue Souop & Philippe Tagoum Fogang & Daf Gnabaly, 2008 Rapport de stage Linterphonie mobile sur Bluetooth Toko Luyeye, novembre 2008
2 Liens Internet
Portail des dveloppeurs Apple (rfrences, documentation, tutoriels) http://developer.apple.com/ Portail des dveloppeurs 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 dune 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/ Rfrence 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 dmon 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 exprimentale pour Android http://code.google.com/p/android-bluetooth/ Tutoriel en franais 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 ddi 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
Totalenheures
Tche
Proposition calendrier Recherche de documentation sur Android et iPhone Rdaction du rapport prliminaire Rcupration du SDK Android, installation, configuration, premiers tests Tests de pilotage du Samsung Galaxy via l'interface USB Construction d'une premire application "bac sable", installation sur HTC Hero Prparation & prsentation RATP Documentation sur le rootage, premier rootage du HTC Hero Tests d'excution du dmon "pand" sur Hero root Documentation sur le NDK, rcupration, installation Configuration du NDK, Dveloppement d'une application Hello World utilisant le NDK Rcupration, tude du code de Bluez Dveloppement d'un prototype d'application de un point d'accs Bluetooth utilisant le NDK Rdaction rapport Prparation prsentation Runions d'avancement
153
1 10 5 5 5 10 4 10 20 5 3 10 20 20 10 15
151
1 15 4 5 10 10 4 10 30 4 0 5 8 20 10 15
Guillaume Faure & Maxime Raoust - Telecom SudParis - Janvier 2010 Page 34