ebook img

Android : Développer des applications mobiles pour les Google Phones PDF

231 Pages·2009·1.96 MB·French
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Android : Développer des applications mobiles pour les Google Phones

ANDROID Développer des applications mobiles pour les Google Phones Florent Garin Gérant fondateur de la société DocDoku Certifié Sun Java 2 Programmer et Sun Enterprise Architect for J2EE Préface de Sylvain Wallez Directeur de la technologie de Goojet Membre de la fondation Apache Toutes les marques citées dans cet ouvrage sont des marques déposées par leurs propriétaires respectifs. Illustration de couverture : © Franck Boston - Fotolia.com © Dunod, Paris, 2009 ISBN 978-2-10-054582-7 Préface EnvousouvrantlesportesdudéveloppementsurAndroid,celivrevavouspermettre departiciperàlarévolutionquisecouelemondedelatéléphoniemobiledepuisl’été 2007. Avant cette date, latéléphonie mobile suivait uneévolution tranquille. Certes, chaqueannéeapportait son lotdemégapixels supplémentaires aux appareils photo intégrés, et le GPS faisait son apparition sur les modèles haut de gamme, mais les nouveaux téléphones n’étaient pas fondamentalement différents de ceux qui les avaientprécédés. Pour l’utilisateur, le téléphone était toujours un appareil aux menus touffus comportantdesoptionsdeconfigurationétrangesqu’ilvalaitmieuxnepasmodifier souspeinedecasserlebonfonctionnementdel’appareil.Lasaisieétaitassuréeparle peuconfortableclaviernumérique,quimêmeaveclemécanismedecomplétionT9 nepermettaitpasdesaisirdutexterapidement.Combinéàlalimitation delataille desmessagesSMS,celaaaboutiaufameux«langageSMS»quiestparfoissidifficile àdéchiffrerparlenoninitié! Certains téléphones haut degamme proposaient uneinterface tactile, mais elle imposait généralement l’utilisation d’un stylet, parce que ces systèmes étaient la transposition quasi directe sur un écran très petit des principes d’interface homme- machineexistantssurlesordinateursdebureau.Cliquersurunboutonminusculeou déplacerunebarrededéfilementavecunstylet alorsqu’onestentrain demarcher relèvedel’exploit! Et la très grande majorité des utilisateurs se contentaient des applications de basefourniesavecletéléphone,souventparcequ’ilsignoraientjusqu’àlapossibilité d’installerdenouvellesapplications,maisaussiparcequ’àpartquelquesjeuxàpayer auprixfort,l’offreétaitrelativementlimitéeetpeuintéressante.Letéléphoneétait faitpourtéléphoner,envoyerdesSMSetprendredesphotos,etrarementbeaucoup plus. Pourledéveloppeur,lasituationétaitcomplexe:laplupartdestéléphonesétaient capablesd’accueillirdesapplicationsJavaME(JavaMicroEdition),maiscestandard limité interdisait toute intégration correcte avec le look and feel et les fonctions IV Android natives du téléphone, sans parler de l’énorme variété des implémentations et des interprétationsdustandardquirendaientledéveloppementd’uneapplicationportable digneexcessivementdifficile.Celaexpliqueaussipourquoiilyavaitpeud’applications disponibles. Enjuin2007,unepremièrerévolutioneutlieuquichangearadicalementlemarché du téléphone mobile: Apple sortit l’iPhone, un téléphone d’un genre entièrement nouveau, doté d’une superbe interface tactile réellement utilisable au doigt, avec des applications simples d’usage mais très efficaces. Dès ce moment, tout nouveau téléphonelui était immédiatement comparé, etchaqueconstructeur s’est empressé d’annoncersonfutur«iPhonekiller». Il fallut un an avant qu’Apple décide d’ouvrir son téléphone aux applications tierces. Mais développer sur iPhone n’est pas simple: il faut impérativement un MacintoshetcoderenObjective-C,langagequin’estguèreutiliséquesurlesplates- formesApple.Etilfautensuitepasserlalongueetfrustrantevalidationdel’application parApple,avecdesrejetsfréquentssouventpourdesraisonsobscuresoucontestables. Enparallèle,leséquipesdeGoogletravaillaientsurunprojettoutaussiambitieux. En novembre 2007, ils annoncèrent Android avec leurs partenaires de la Open HandsetAlliance:unsystèmed’exploitationpourtéléphonemobilemoderne,fondé sur Linux, avec uneinterface tactile similaire à celle del’iPhone, et intégralement OpenSource.Ilfallutattendreoctobre2008pouravoiruntéléphoneAndroidentre lesmains,etc’estclairementuneréussite.Androidestleseul«iPhonekiller»crédible. En rendant son système Open Source, et donc gratuit pour les constructeurs, Google jette un pavé dans la mare: les constructeurs du Sud-Est asiatique, réputés pour leur savoir-faire électronique et leurs faibles compétences en logiciel, ont le moyen de produire un téléphone moderne sans devoir payer de royalties pour le systèmed’exploitation commec’estlecasavecWindowsMobile. Laplupart deces constructeursontannoncéouontdéjàsortidesmodèlesfonctionnantavecAndroid. Pourledéveloppeur, Android estunebénédiction:ledéveloppementsefaiten Java,pasun«sous-Java»commec’estlecasavecJavaME,maisunenvironnement complet, reprenant une grosse partie de la librairie du JDK et y ajoutant tout ce qui permet de construire très facilement des applications tactiles, graphiques, communicantes,géolocalisées,etc.Etlesoutilsdedéveloppementfonctionnentsur votrePC,quelqu’ilsoit,avecuneexcellenteintégrationdansEclipse. L’architecture d’Android, comme vous le découvrirez dans ces pages, est d’une grandeélégance:enpermettantladécompositiond’uneapplicationen«activités» communicantes, l’ensembledesapplications présentessurvotretéléphonepeuvent coopérer,etdenouvellesapplicationspeuventenrichircellesquisontdéjàprésentes. Onesttrèsloindumodèlefermédestéléphonesquiontprécédé,etmêmedel’iPhone. Androidouvreledéveloppementd’applicationsmobileàl’énormepopulationdes développeursJava,cequinepeutquefavoriserl’émergenced’unécosystèmetrèsriche. FlorentGarinestdeceux-ci,riched’unegrandeexpérienceenJavaaussibiensurle serveurquesurledesktop.Iladoncparsemécespagesdecomparaisonsutilesavecles librairiesettechniquestraditionnellementutiliséesdanslemondeJava. Préface V Cet ouvrage vous ouvrira les portes du développement sur Android. En vous donnantlesbasesetprincipesdetouteslesfonctionsoffertesparcesystème,ilvous permettra de comprendre l’extraordinaire potentiel de cette plate-forme, et d’être rapidement productif pour écrire, je l’espère, la prochaine «killer app» à laquelle personnen’avaitjamaispensé. Alorsbonnelecture,etàvosclaviers! SylvainWallez DirecteurdelatechnologiedeGoojet MembredelafondationApache Table des matières Préface..................................................................... III Avant-propos................................................................ XIII Chapitre1–Présentation.................................................... 1 1.1 Qu’ya-t-ildanslaboîte?................................................. 1 1.2 L’OpenHandsetAlliance................................................ 1 1.2.1 Lesconstructeurs.................................................... 2 1.2.2 Lalicence........................................................... 3 1.3 Lesapplicationsdebase.................................................. 3 1.4 Positionnementparrapportàsonenvironnement.......................... 5 1.4.1 L’iPhone............................................................ 6 1.4.2 Nokia.............................................................. 7 1.4.3 WindowsMobile..................................................... 7 1.4.4 BlackBerry.......................................................... 8 1.4.5 Palm............................................................... 9 1.4.6 JavaFx............................................................. 10 1.4.7 Flash/Flex .......................................................... 10 1.4.8 JavaME............................................................ 11 1.4.9 Lesautres........................................................... 11 VIII Android Chapitre2–Architecturelogicielle........................................... 13 2.1 UnLinuxSouslecapot.................................................. 13 2.2 DesbibliothèquesC/C++................................................ 13 2.3 UnmiddlewareJava..................................................... 15 2.4 Dalvik................................................................. 15 2.5 LeJDK................................................................. 16 Chapitre3–Lemodèledeprogrammation..................................... 19 3.1 Undéveloppementpresqueclassique...................................... 19 3.1.1 Règlesdecodage..................................................... 20 3.2 LeSDKAndroid........................................................ 22 3.2.1 Plug-inEclipse....................................................... 23 3.2.2 ScriptsAnt.......................................................... 26 3.3 Développer,Exécuter&Débugger........................................ 26 3.3.1 Installation.......................................................... 26 3.3.2 DalvikDebugMonitorService(DDMS) ................................ 27 3.4 Structured’unprojet.................................................... 28 3.4.1 Lemanifest......................................................... 30 3.4.2 Lesressources....................................................... 37 3.5 Etleswebapp?.......................................................... 41 Chapitre4–Construirel’interfacegraphique ................................. 45 4.1 Lerenduvisuel.......................................................... 45 4.2 Approcheprogrammatiqueoudéclarative................................. 46 4.3 Lescomposantsgraphiques............................................... 51 4.3.1 TextView........................................................... 51 4.3.2 EditText............................................................ 52 4.3.3 CheckBox.......................................................... 53 4.3.4 ToggleButton........................................................ 54 4.3.5 RadioGroup......................................................... 55 4.3.6 Button............................................................. 56 4.3.7 Spinner............................................................. 58 4.3.8 AutoCompleteTextView .............................................. 59 Tabledesmatières IX 4.3.9 DatePicker.......................................................... 60 4.3.10 TimePicker.......................................................... 61 4.3.11 Gallery............................................................. 61 4.3.12 ImageView.......................................................... 65 4.3.13 ImageButton........................................................ 65 4.3.14 ProgressBar......................................................... 66 4.3.15 AnalogClock........................................................ 68 4.3.16 DigitalClock......................................................... 68 4.3.17 RatingBar........................................................... 69 4.4 Leslayouts.............................................................. 70 4.4.1 ListView............................................................ 70 4.4.2 FrameLayout........................................................ 71 4.4.3 LinearLayout........................................................ 71 4.4.4 TableLayout......................................................... 71 4.4.5 RelativeLayout...................................................... 72 Chapitre5–Lemodèledecomposants........................................ 73 5.1 Unefortemodularité.................................................... 73 5.2 Quatrefamillesdecomposants........................................... 74 5.3 Lanavigationentreactivités............................................. 74 5.3.1 L’objetIntent........................................................ 75 5.3.2 Larésolution........................................................ 76 5.3.3 Lacommunicationentreactivités....................................... 79 5.4 Lesservices............................................................. 81 5.4.1 LelangageAIDL.................................................... 81 5.4.2 Implémentationduservice............................................. 86 5.4.3 Publicationduservice................................................. 87 5.4.4 Côtéclient.......................................................... 88 5.5 Lebusdemessages...................................................... 90 5.5.1 Deuxmodesd’émission............................................... 90 5.5.2 Deuxfaçonsdes’abonnerauxévénements............................... 91 5.5.3 Implémentationdureceiver............................................ 93 5.5.4 Uneduréedevietrèscourte........................................... 95 X Android Chapitre6–Lapersistancedesdonnées....................................... 99 6.1 Sauvegarderl’étatdesapplications........................................ 99 6.2 Systèmedefichiers...................................................... 100 6.2.1 Lectured’unfichier................................................... 100 6.2.2 Écriredansunfichier................................................. 101 6.3 Lespréférencesutilisateur................................................ 102 6.3.1 Lecturedespréférences................................................ 103 6.3.2 Écrituredespréférences............................................... 103 6.3.3 IHMdeConfiguration................................................ 104 6.4 SQLite................................................................. 106 6.5 Exposersesdonnées..................................................... 108 6.5.1 Utiliserlesproviders.................................................. 108 6.5.2 Modifierlesdonnéesducontentprovider................................. 111 6.5.3 CréersonpropreContentProvider...................................... 112 Chapitre7–FonctionsIHMpoussées........................................ 117 7.1 Lesmenus.............................................................. 117 7.1.1 Les«OptionMenus»................................................ 118 7.1.2 Les«ContextMenus»............................................... 120 7.2 Étendrelescomposantsexistants ......................................... 120 7.3 Lesanimations.......................................................... 121 7.4 Personnalisationenfonctiondelaconfiguration........................... 124 7.4.1 Lesressourcesalternatives............................................. 124 7.5 Notifierl’utilisateur ..................................................... 128 7.5.1 LeToast............................................................ 128 7.5.2 Barredestatut....................................................... 130 7.5.3 Lesboîtesdedialogue................................................. 131 7.6 2Det3D............................................................... 134 7.6.1 Graphismeendeuxdimensions......................................... 134 7.6.2 Graphismeentroisdimensions......................................... 137 7.7 AppWidgets ........................................................... 138 7.7.1 Définitiondel’IHM.................................................. 139 7.7.2 AppWidgetProvider.................................................. 140

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.