développer une application mobile sous android -

Upload: ndarndar

Post on 05-Apr-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/31/2019 Dvelopper une application mobile sous Android -

    1/5

    6/01/12 Dvelopper une application mobile sous Android -

    1/5saxis.fr/blog//26-developper-une-application-mobile-sous-android

    Veille technologique

    Partageons nos connaissances !

    Dans le cadre de sa veille technologique, Osaxis travaille sur de nombreux sujetstechniques et souhaite partager ses connaissances. Des articles sont rgulirement mis enligne sur des sujets divers et varis afin de vous faire part des actualits du moment touten conservant notre impartialit.

    Dvelopper une application mobile sous Android

    Par Sbastien Valle, lundi 2 mai 2011

    1. Origine et prsentation dAndroid

    Android est un systme dexploitation bas sur le noyau Linux,destin aux tlphones portables, tablettes tactiles, et autresterminaux mobiles. Cest en 2007 que Google, aprs le rachatde la socit Android Inc., annonce lobjectif de dvelopper desstandards dits open source pour appareils mobiles. Parmi lesconstructeurs qui ont dj opt pour le systme dexploitationAndroid, nous pouvons citer HTC, avec une large gamme detlphones portables dont le Nexus One (de Google) ; Samsungavec ses gammes Galaxy Spica, Tab, Teos et S ; Sony Ericsson; Motorola etc.

    En forte progression depuis un an, Android est actuellement un des systmes dexploitationmobile les plus reprsents en France. La course la prise de parts de march sintensifieavec par exemple Nokia qui abandonne son systme dexploitation Symbian OS au profitde Windows Phone 7, dvelopp par Microsoft. Certains constructeurs ont finalement pris lepari de sortir des quipements mobiles sous deux systmes dexploitation, WP7 et Androiden loccurrence pour HTC.

    Au niveau du dveloppement dapplications, Android utilise un Framework Java et proposeun environnement de dveloppement complet comprenant un mulateur, un dbogueur etun analyseur de mmoire et de performance. Cet article prsente et dcrit les diffrentsaspects du dveloppement dapplications sur Android. La version actuelle dAndroid est la2.3 Gingerbread (Pain dpice) sortie le 6 dcembre 2010, mme si la plus utilise restepour le moment la 2.2 FroYo. Chaque nouvelle version dAndroid apporte son lot denouveauts, comme de nouvelles applications prinstalles dans lOS, des amliorations dela gestion de la batterie, des volutions sur linterface utilisateur, ou la prise en charge deformat vido et protocole de communication supplmentaires.

    2. Environnement de dveloppementLe dveloppement dapplications pour Android ncessite au pralable trois tapesindispensables :

    Linstallation dun JDK (version 5 minimum), ncessaire pour les dveloppements Java ;Linstallation du SDK (Software Dvelopment Kit) Android, qui correspond au k it dedveloppement de Google. Ce kit, tlchargeable gratuitement, contient lensemble desoutils permettant le dveloppement dapplication Android, ainsi quun mulateurdquipement mobile pour tester et faire fonctionner ses applications ;Linstallation dun environnement de dve loppement Java et de son plugin adapt,permettant de crer des projets Android, de dvelopper des applications, ainsi que decompiler et lancer les applications sur lmulateur ou directement sur un mobile connecten USB.

    Loutil de dveloppement le plus rpandu dans le domaine est Eclipse (vers ion 3.5minimum) proposant le plug-in ADT (Android Development Tool). C ette solution est biendocumente et semble tre la plus aboutie actuellement sur le march. Il existe nanmoinsdes plug-ins Android pour les autres outils de dveloppement Java tels que Netbeans ou

    IntelliJ.

    3. Arborescence dun projet Android

    Tout comme bon nombre de technologies actuelles, les sources dune application Androidpossdent une structure bien dfinie qui doit tre respecte. Ces arborescences permettentnon seulement de rendre les projets plus lisibles et organiss, mais aussi de simplifier ledveloppement en supprimant les contraintes de rfrencement des ressources. Lors de lacration dun nouveau projet, voici larborescence qui est automatiquement gnre :

    Osaxis recrute !

    Accueil Mtiers Rfrences Socit Veille Intranet Nous contacter

    Thmes

    Derniers articles

    J2EE

    LAMP

    Microsoft .NET

    Dveloppement Mobiles

    Outils de test

    Autres

  • 7/31/2019 Dvelopper une application mobile sous Android -

    2/5

    6/01/12 Dvelopper une application mobile sous Android -

    2/5saxis.fr/blog//26-developper-une-application-mobile-sous-android

    src : rpertoire contenant lensemble dessources du projet. Il contient les classes detype activit (voir ci-dessous) qui grententre autre le cycle de v ie dune page, maisaussi les classes permettant de piloter lesdiffrentes fonctions de lapplication.

    gen : rpertoire contenant lensemble desfichiers gnrs par le plugin correspondant lenvironnement de dveloppement.Aucune modification ne doit tre faite dansces fichiers.

    androidManifest.xml : fichier XML dcrivantlapplication et ses composants, tels que lesactivits, les serv ices etc. Lors de la crationdune activit, une erreur courante pour unpremier projet Android est doublier de ladclarer dans le fichier manifeste. C est unetape indispensable pour le fonctionnementde lapplication. Le manifeste est en quelquesorte la carte didentit de lapplication, etpermet dautoriser lexcution des activits etautres actions de lapplication(fonctionnement que lon retrouve dansdiffrents formats dapplication J2EE).

    res : rpertoire contenant toutes les ressources telles que les images, les vues delinterface graphique, etc. ncessaires lapplication. Ce rpertoire est structur pardfaut de la manire suivante :

    res/drawable : contient les ressources de type image ;res/layout : contient les descriptions des interfaces graphiques au format XML (lesvues) ;res/xml : contient les fichiers XML supplmentaires (non prsents par dfaut) ;res/menu : contient la description des menus, composants trs courants dune vue ;res/values : contient diverses ressources, tels que les textes, qui sont empaquetessans aucun traitement.

    Au moment de la compilation du projet, lapplication finale est gnre au format APK,dans le rpertoire bin de larborescence. C est ce fichier quil faut ensuite dployer surles quipements afin de pouvoir faire tourner lapplication.

    4. Principe de programmation

    La programmation sous Android est compose de plusieurs lments fondamentaux : lesactivits, les vues, les ressources et le manifeste.

    Les activits

    Une activit correspond une page de lapplication et se place dans le dossier src delarborescence. C oncrtement, il sagit dune classe hritant de la classe Activity, et quicomprend un ensemble de mthodes correspondant au cycle de v ie de cette page. Ledveloppeur surcharge ces mthodes en fonction des besoins, tels que le dmarrage duneactivit, linitialisation de la page ou la destruction de lactivit. Cette classe comprendgalement le code des vnements et des actions que peut effectuer lutilisateur, commelenregistrement des donnes, la navigation vers dautres pages, le dmarrage dun serviceetc.

    Voici un exemple de la structure dune activit :

  • 7/31/2019 Dvelopper une application mobile sous Android -

    3/5

    6/01/12 Dvelopper une application mobile sous Android -

    3/5saxis.fr/blog//26-developper-une-application-mobile-sous-android

    Lenchanement des activits est similaire une pile. Au dmarrage dune nouvelle activit,celle-ci est positionne en haut de la pile. Il sagit de lactivit courante de lutilisateur.Lorsque ce dernier dcide de revenir en arrire, cette activit est supprime du haut de lapile, et lutilisateur revient donc lactivit prcdente.

    Les es

    Gnralement, aprs quelques phases dinitialisation, la premire action dune activit estde lancer une vue. La vue reprsente linterface graphique. Il sagit de fichiers XML situsdans le rpertoire Layout de larborescence. Pour crer une vue, le dveloppeur a lapossibilit de manipuler directement le fichier XML, qui dcrit les lments prsents sur lapage, tels que les champs de saisies, les boutons, les cases cocher.

    Voici un exemple du code dun bouton et dune case cocher :

    La premire balise (LinearLayout) correspond une zone de lcran dans laquelle leslments sont positionns. Les deux balises suivantes (CheckBox et Button) reprsentent

  • 7/31/2019 Dvelopper une application mobile sous Android -

    4/5

    6/01/12 Dvelopper une application mobile sous Android -

    4/5saxis.fr/blog//26-developper-une-application-mobile-sous-android

    la vue dune case cocher et dun bouton. Chaque balise est paramtrable travers unensemble de paramtres tels que la largeur (android:layout_width) ou limage de fond(android:background).

    Mais il existe galement des outils WYSIWYG permettant de crer une vue de faongraphique, savoir de glisser/dposer les composants souhaits sur la vue et devisualiser directement le rsultat. Chaque lment mis en place est bien sr paramtrablevia la modification de ses proprits. Il est galement possible de crer et dajouter deslments une vue directement partir de lactivit. Cette dernire solution, bien que nonrecommande, peut parfois simposer aux dveloppeurs en fonction de contraintes, tellesque le chargement dynamique de contrles. Dans tous les cas, chaque lment de la pageest ensuite accessible et manipulable par lactivit qui a lanc la vue.

    Les ressources

    On appelle ressource tous les lments tels que les images, les textes et autres fichiersqui sont utiliss par la vue. C est entre autre grce ces ressources quil est possible degrer le multilinguisme, les diffrentes tailles dimages, etc.

    Le manifeste

    Le dernier lment fondamental dune application Android est le manifeste, qui contient ladescription de son application Android. Par exemple, le nom de lapplication, le numro deversion mais galement la liste de toutes les activits.

    Avant de conclure cette partie, voici la prsentation dun autre lment incontournable dudveloppement Android : les Intents. Les Intents reprsentent un mcanisme deprogrammation permettant de dclencher une activit ou une action au sein delapplication. Une des premires utilisations des Intents consiste par exemple dmarrerune seconde activit (ou page) de son application. Mais cette utilisation constitue une infimepartie des possibilits de ce mcanisme, qui permet galement denvoyer des donnes, desmessages ou de dclencher des activits dune autre application. Par exemple, pourdmarrer une activit dappel tlphonique :

    Intent intent = new Intent(Intent.CALL_ACTION);

    intent.setData(Uri.parse(tel:+33123456789));

    startActivity(intent);

    Cet article prsente les principes de base de la programmation sous Android, mais laplateforme comprend galement un panel important dAPI permettant de grer lagolocalisation, lappareil photo, lacclromtre (capteur permettant de mesurerlacclration de lappareil, secousses etc.) et autres fonctionnalits des smartphonesactuels. Android gre de plus les graphismes en 3D via la librairie OpenGL.

    5. Persistance des donnes

    La persistance des donnes est un point essentiel de lutilisationdune application, et cela pour nimporte quel support ou

    plateforme. Le dveloppement sous Android offre plusieurspossibilits concernant ce point. Voici un aperu des diffrentessolutions, de la plus simple mettre en place la pluscomplexe. Il existe quatre moyens de faire persister desdonnes, chacun ayant une utilit pour un cas dfini :

    - la premire approche concerne la sauvegarde de ltat de son application, lorsque celle-ciest dcharge de la mmoire. Cet enregistrement, qui se fait dans la mmoire delquipement, est utile, par exemple lorsque lutilisateur retourne sur une activit quil avaitpralablement mise de ct, afin de retrouver ltat dun formulaire au moment de lasaisie.

    - la seconde solution revient enregistrer les paramtres ou prfrences utilisateur. Ilsagit dun ensemble de couples cl/valeur, stockes dans un fichier XML, permettant lutilisateur denregistrer le paramtrage de son application, ou mme de son systme (lalangue, le type de menu, un fond dcran).

    - le troisime cas concerne la sauvegarde de donnes propres lapplication. Il sagit dunesauvegarde par fichier plat. Android fournit un ensemble de fonctionnalits permettant delire et crire simplement dans un fichier.

    - enfin, la dernire solution, plus familire au dveloppeur, est lutilisation dune base dedonnes SQLite. Pour ce cas, il sagit dun ensemble de tables accessibles v ia des requtesSQL classiques. Il faut faire cependant attention ne pas conserver les habitudesclassiques dutilisation dun SGBDR, car les performances peuvent rapidement se dgraderdans un contexte embarqu. Ainsi, il est prfrable dviter de crer des tables contenantune grande quantit de champs, ou des requtes complexes comprenant moultes jointures.

    6. Conclusion

    Dbut 2011, Android fait partie des plus grands concurrents de l'iOS dApple, et le nombrede tlphones portables adoptant ce systme dexploitation ne cesse de crotre. A ladiffrence des systmes propritaires, Android permet de toucher une plus grande gammede tlphones, et les constructeurs disposent mme de la possibilit dajouter au systmedexploitation une couche dinterface personnalise, comme linterface Sense de HTC. De

    plus, un des grands atouts dAndroid vient de son socle Java, facile prendre en main etdisposant dj dune importante communaut.

    Android possde galement un des plus grands rfrentiels dapplications (Android Market).Gnralement, chaque application payante trouve son quivalent dans au moins uneversion gratuite. A noter quil ex iste dautres rfrentiels dapplications Android tels queGetjar, Androlib, Amazon Appstore etc.

    Concernant la publication dapplications sur lAndroid Market, il est obligatoire de payer un

  • 7/31/2019 Dvelopper une application mobile sous Android -

    5/5

    6/01/12 Dvelopper une application mobile sous Android -

    5/5saxis.fr/blog//26-developper-une-application-mobile-sous-android

    droit dentre de 25 dollars US (environ 20 euros). En revanche, aucun contrle nesteffectu pour garantir le contenu des applications, mme si Google se rserve le droit desupprimer du Market une application au contenu illicite. Lorsquune application est payante,70% de la vente revient lquipe de dveloppement, 30% du montant tant revers auconstructeur du mobile et/ou loprateur.

    Pour conclure, Android prsente un gros point fort vis vis de ses concurrents grce ladoption de Java. En revanche, les interfaces graphiques XML peuvent parfois trecontraignantes et droutantes, surtout pour les habitus du HTML. Un autre inconvnientrside dans les mises jour du systme dexploitation, qui ne peuvent pas seffectuer surtous les tlphones. Ces mises jour se rvlent en effet difficiles suivre pour les noninitis. Enfin, Android ne dispose pas de la force de frappe marketing de ses deux grandsrivaux que sont iOS (Apple) et Windows Phone (Microsoft) et doit pour simposer nouer despartenariats avec des constructeurs. Heureusement, en plus dune base installe dj trs

    importante, Android offre lintgration dAdobe Flash, les serv ices Google, la libert auxutilisateurs dinstaller simplement ce quils souhaitent sans passer par un outil tel quiTunes,une mmoire extensible, et surtout un systme dexploitation ouvert et bas sur Java.

    Article prcdent

    Article suivant

    Publi avec DotClear

    > plan du site - crdits - nous contacter