5 2 r F 6 5 0 € R o Concevoir son application et penser son architecture Découv

5 2 r F 6 5 0 € R o Concevoir son application et penser son architecture Découverte et étude de I'APl des contacts I il -r I I I ilr =F - = :rprenez à développer une application entièrement en N z t N F R A N G E HORS.SERIE Administration et développement sur systèmes UNIX I ecouvrez Android, son architecture, les IPC et son SDK Manipulation de I'application de gestion de contacts Création et gestion d'une liste de contacts Manipulation des comptes et svnchronisation Optimisation, publication et diffusion de I'application SOM MAIRE rl.sz LARCHITECTURE LOCICIELLE DU SYSTEME ANDROID ]NTER PROCESS CALL INTÉGRATION DE LANNUAIRE LDAP ET DES PHOTOS OUVERTURE VERS LES AUTRES QUAL]FICAT]ON SUR TOUS LES ENVIRONNEMENTS INTRODUCT]ON A ANDROID Android I Cest en nai 2007 que Google annonce sur son blog officiel :. we think what we arc announcing - the Oper Handset Alliance and Andnld - is norc signiâcant and ambitlous than a single phane,. En iânvier 2010. il y a tout juste un an, cest le téléphone Nexus One qui fait son apparition. Plus qrl un pro- duit, cest une leçon et une démonstration de Google destinées aùx const.ucteurs de sna.Pnores démontrantlesfonctionnalités de sa plateforme mobile. Le Nexus One nest pas une réussirc commerciale. il nétait de toute façon pas destiné à cela. Android. par contre. cest une toute autre histoire. Aujourd hui, alorc que les lmartphon€s reposant su. le système de Google détrôn€nt l iPhone dApple dâns presque tous l€spays. Google n hésite pas à exprimer clairement que l?chat de la siaft'up Andfoid Inc. est I une desmeilleùres afialres qoe Ientreprise naitjamais réalisée. Andfoid est partoùt, vous navez quà feuilleter le catalogue des pr€stataires de téléphonie mobilepourvous en rendre compte ou chercher les chifires de ventes annoncés par Samsung, Motofola ou encore Sony/Erjcsson. Comment ClMFpoùvajd ignorer cela âlors quAndroid estun système basé sur Linùx et disponible, en grande partie, en open source ? Nous ne voùlions pas falre slmplement un tour d horizon de la platefo.me et présenter quelques. Hello Worldl ", nous avons souhaité du ( pratique ,, du . concret ,, un contenu qui vous apporte réellement qu€lque chose de slngulier d unique. Le nâitre d ceuvre de lensemble des articles qui vont sùivre est Philippe P.ados, dontle nomnestsansdoute pasinconnudes lecteurs de longue date de GIMÀ Je tiens ici à saluer le trâvail exceptionnel d€ Philippe, quirelève du ( purjus de cerveau " et ie re- mercier de partager ainsi toùt son labeur et son expérience en développement Android. Je luilâisse à présent Iabarre pourvous emlnener dans un voyage aux confins de l 0S Coogle et vous servjf de guide dans le cycle complet du développement d une application Android, de l étude desAPI à ladifusion sur Encofe nerci Philippe, peu nombreux sont ceux quj partageratent ainsi un tel retour 5 . - i à B . J . * Gtlu/Llnux M.g.zin. Frânco N'52 1 2 't4 16 19 31 38 40 44 48 53 60 64 67 70 72 74 I 2 3 4 5 6 LES STRATEGIES D INTÉGRATION LADÉCoUVERTE DE LAPI DEs CoNTACTS MANIPULER LAPPL]CATION CONTACTS CESTION D'UNE LISTE DE CONTACTS CISTION DTS COMPTES ET 5Y\CHRO\I5A'I IO]', WIZARD ET CLUF OPTIMISATION SOUS ANDRO]D LE MARKETINC DE LAPPL]CATION PUBL]CATION DE LAPPLICATION S]'CURITE SYNTHÈSE DE LINTÉGRATION CONCLUSION /6 H]M15 POUR LA PIUPARÏ DFS APPLICATIONS 29,5Il5' BON DABONNLVF\T T'I DT COÀ,'MANDE CRITiQUES LIVRES bÉorrr/JNs ffl|EûLrttr *;liJï,*i#,ilîi';ir'"9ill,it3?i' tl"*t I dlro8r. /Aoritt i;ô;.;;;;;;È;eF."",&ù*o -d4 lMPilMÊ m Allem?sm Dtporrésar: À@ruioo.N NN 0133 0361 -qry*lF' [3 INTRODUCTION A ANDROID Nous allons commencer par introduire les différents concepts présents dans le système Android. Quels sont les principes fondateurs de l'architecture ? Pourquoi ces choix ? Quels sont les avantages et les inconvénients ? rdrcid ÊstuJr slsrème d exploitatnn' et un t"rrex,or"li pefm€tant dr da!.loppcr dcs applicarions porll des lennjnaur de lous types Irais prin.i palÊnrent pouf d€s téléphon€s poftables. Les .hoiri pfépondéfants rle laf.hiiectLrfe sonL basés suf la lolonté de maitfisef .ontfaint pa. la !itr.sse du pro(r.ss.ur l. peu de ménroife djspofiblc. la fonsoùrI|râ tion élect.ique ei les lalbles per fofmances Di!ers conrposântssont proposés auli unli ban, d. donna.s SQLil.r : une naviga|euf $eb de souche \'\€bKit L'r moleL'f lavas..r!r : des blbliothèqLrÊs de nranip!lirti.n de feconnaissance des risages : ""j,lii',rill;illjiiî,iïe^nd 'l'r ''ot E r", activités un. vit( ssc 11. prx$sftr limiLée â!ec urc lir:(tucn{u d. 250iv1hz: une Inémoire RANI avart 6,1Nlb pirur I{'ns{'mble du slsrème. soit 20À1b llne lbis l( s sr.!i{ts haut nneau en âcli\ilé i ùr sr.fn ir nl' i1 .\ploiratim bâsÉ ï.Li lx. ia,,s ispâ.. d.. sl,.rp i une Ésolurion de 210r320. Bien enr€ndu les connructeufs propo slnr d!s .x!]al(,s phrs ri.hêmenr dotés et cesl entre autfes suf ce pornr qLr. s.Jrnx' la.onc!f rerce (er les diffi .ùlr(is). S u f . . l l . b a s . C o . g ] . | . o n ç u u n svstène pfo.hc drs rf.hnoLo:jj.s txl dc.nes d hrc|net En efer. 1écfan du tÈfminalne peut amchef qr'une pagc à la fois. coJnnre s il sag ssail d Lrn. pagf \!.b C.r1c dûrriafc ollie des compof ternents d\'namirlLr.s poù..ûdilicr lâ page couf ante ou dé. enchef I afll.hagc de nou!elles pages. Crrn.x p(ù unnâvigarr,uf lâsu.:r€ssion d.s pag.s est ûrénrorisée dans une pile pefmertant à lîIilisateufde lajre nra..h(' arrlè.r êrdc fri\ûrjf à la page p.eced€nie. CelajusliÊe la presence du bouton ( retour, présent sur tous les termlnaux Android (contrairement à d'autres ordiphones à la pomme, mais comme les modèles sous Windows Phone 7). Les pages sont portées pardes Acti vitésdans levocabulairedAndroid. Une activité est une classe Java dont le cycle de vie est géré par le framework. Une activité devient non active lorsquelle nest plus présente au premier plan. Dans cette situation, le framework peut décider dàutorité de tuer le processus en charge de l activité pour libérer des ressources, lors d un appel téléphonlque entrant par e,Y€mple. Lâctivité peut être considérée sans état, tant sa durée de vie est fragile. Par exemple, loas du basculement du terminal de la verticale à l horizontaie, Androld propose dhdapter toutes les ressources utilisées par Iappiication. Cela va de la dispositjon des w/dgets à l écran, des textes utilisés qui peuvent être plus ou moins longs, des couleurs et autres subtilités. fimpact d un changement de mode étant très important, le plus facile pourle gérer consiste à supprimer I activité courante et à la reconstrulre de zéro. Quelques astuces permettent de garder quelqùe pafi les états de la fenêtre, afin de restituer l écran dans un étât proche de celui d'avant 1e bas- culement. le plus rapjdement possible. Un simple basculement peut faire perdre 1âctivité courante. vers une base de données SQLite pré- sente dans lenvironnement. Mais il est également envisageable de déléguer la persistance des donnéessurunserveur distant, d utillser des ffchiers plats, XML, REST, SOAP ou toute autre technologle. La seule limitation à cetle appfoche est qu n nest pas possible de faire des requêtes avec jointures entre plusieurs sources de données. Les fournisseurs règlent gméralement cela en proposant plusieurs URI différentes, suivant les combinaisons entres tables, en proposant des répeatoires sur les URL Par exemple, pour avoir le détail d un contact, tl faut sumxer l URl de /data. ll est alors possible de demander toutes les données via contenl//contacts/ people/l/dâta. LAPI d un gestionnaire de ressources consiste à décrire les formats d URI acceptés et une class€ d'implémenta- tion. Les URI peuvent représenter un ( répertoire , (un ensemble d objets) ou un objet particuiier Par exenple, conrent//contacts/people représente la liste des contacts. Les services dàjout ou de modification retournentI'URI de lbbjet manipulé. Le service de requête retourne un Cursor permettant de naviguer dans le résultat en consultant les valeurs des colonnes. Lecurseurpeutvoyagerd un processus à un autre sans perte de données. Une paginatlon est utilisée pour éviter de trop fréquents alleryretoursentre les proces$s. la machine virtuelle manipulent unjeu important de registres. Un couple de registres est utilisé pour les données trop grandes, comme ies doubles ou les longs. Si le code nécessite plus de données que de registres disponibles, une permutation est effectuée avec la pile en mémoire. Pour améliorer les performances, la compilation du code minimise all maximum cette situation. Dalvik propose 30 % d instructions en rnoins qu une JVM classique mais avec des inst.nctions 35 % plusgrandes. Des études ont montré qùe la charge sup- plémentaire engendrée par la taille des instruclions avait un impact d €nviron 1 % par instruction.Au frnal, Dalvjk présente un temps d exécution quasiment deux ibis plus rapide que celui des JVM classiques. Les instructions de bas niveau étant rrès différentes d une machine virtuelle Ja!? classique, il est nécessaire d'effectuer une conversion de bytecode Comme les programmes sexécutent dans un envi- ronnement contraint - peu de mémoire et de CPU ' le convertisseur d€ bytecode en profite pour effectuer I édition de lien entre toutes les classes connues, Il ny a plus de chargenent paresseux comme dans une JVM classique. Tout ce qui peutêtre mutualisé et anticipé I est. cela pe.met uploads/Litterature/ linuxmagazine-hs-2011-02.pdf

  • 14
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager