Académique Documents
Professionnel Documents
Culture Documents
Cours Android
Dveloppement et API e
Romain Raveaux1
1 Laboratoire
1 / 100
Sommaire
Organisation du module
Generalite
Le Syst`me e
2 / 100
Romain Raveaux
Doctorat en informatique 2 Masters: Rseaux et Tlcommunications et Maths e ee appliques e Recherche (Laboratoire L3i)
Scurit documentaire e e Analyse de graphes (Rseaux informatiques ou sociaux) e
3 / 100
Romain Raveaux
Doctorat en informatique 2 Masters: Rseaux et Tlcommunications et Maths e ee appliques e Recherche (Laboratoire L3i)
Scurit documentaire e e Analyse de graphes (Rseaux informatiques ou sociaux) e
3 / 100
Romain Raveaux
Doctorat en informatique 2 Masters: Rseaux et Tlcommunications et Maths e ee appliques e Recherche (Laboratoire L3i)
Scurit documentaire e e Analyse de graphes (Rseaux informatiques ou sociaux) e
3 / 100
Romain Raveaux
Doctorat en informatique 2 Masters: Rseaux et Tlcommunications et Maths e ee appliques e Recherche (Laboratoire L3i)
Scurit documentaire e e Analyse de graphes (Rseaux informatiques ou sociaux) e
3 / 100
Romain Raveaux
Doctorat en informatique 2 Masters: Rseaux et Tlcommunications et Maths e ee appliques e Recherche (Laboratoire L3i)
Scurit documentaire e e Analyse de graphes (Rseaux informatiques ou sociaux) e
3 / 100
Romain Raveaux
Doctorat en informatique 2 Masters: Rseaux et Tlcommunications et Maths e ee appliques e Recherche (Laboratoire L3i)
Scurit documentaire e e Analyse de graphes (Rseaux informatiques ou sociaux) e
3 / 100
Romain Raveaux
Doctorat en informatique 2 Masters: Rseaux et Tlcommunications et Maths e ee appliques e Recherche (Laboratoire L3i)
Scurit documentaire e e Analyse de graphes (Rseaux informatiques ou sociaux) e
3 / 100
Romain Raveaux
Doctorat en informatique 2 Masters: Rseaux et Tlcommunications et Maths e ee appliques e Recherche (Laboratoire L3i)
Scurit documentaire e e Analyse de graphes (Rseaux informatiques ou sociaux) e
3 / 100
Module Android
Module PM4 : 2 semaines Gnralit Android e e e Organisation du syst`me e Android SDK Application
4 / 100
Module Android
Module PM4 : 2 semaines Gnralit Android e e e Organisation du syst`me e Android SDK Application
4 / 100
Module Android
Module PM4 : 2 semaines Gnralit Android e e e Organisation du syst`me e Android SDK Application
4 / 100
Module Android
Module PM4 : 2 semaines Gnralit Android e e e Organisation du syst`me e Android SDK Application
4 / 100
5 / 100
5 / 100
Les r`gles e
6 / 100
Les r`gles e
6 / 100
Bibliographie
7 / 100
Bibliographie
7 / 100
Bibliographie
7 / 100
Bibliographie
7 / 100
Bibliographie
7 / 100
Bibliographie
7 / 100
Bibliographie
Ce cours/TP utilise tr`s largement larticle de Yann e DISANTO publi sur Developpez.com ainsi que de la e prsentation de Lenn Angel. e
8 / 100
Prsentation Gnrale e e e
9 / 100
Souvent prsent comme laternative de Google ` liPhone e e a Syst`me dexploitation pour terminaux mobiles e Bas sur Linux e Open Source (licence Apache)
10 / 100
Fonctionnalits 1/2 e
Framework applicatif avec rutilisation et remplacement e possible des composants DVM : Dalvik Virtual Machine (machine virtuelle optimise e pour les priphriques mobiles) e e Navigateur intgr bas sur le moteur WebKit (OpenSource) e e e Librairie 2D ddie e e Gestion de la 3D base sur une implmentation dOpenGL ES e e 1.0 (avec support de laccelration matrielle) e e Base de donnes SQLite e Gestion des crans tactiles et du Multitouch e
11 / 100
Fonctionnalits 2/2 e
Multimdia : support de la plupart des formats classiques e dimages, de videos et audios (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) Tlphonie GSM (selon hardware) ee Bluetooth, EDGE, 3G et WiFi (selon hardware) Camra, GPS, compas et accelrom`tre (selon hardware) e e e Environnement de dveloppement riche incluant : e
Un emulateur (avec une interface de controle) Des outils de deboggage Outils de proling memoire et performance Un plugin pour lIDE Eclipse
12 / 100
Historique
Dvelopp par la startup Android Inc. e e Juillet 2005 : Rachat par Google Novembre 2007 : Open Handset Alliance
- Texas Instruments, Broadcom Corporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel, T-Mobile - Dcembre 2008 : ARM Holdings, Atheros Communications, e Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, Vodafone
13 / 100
Terminaux Viss e
Tlphones portables (HTC, Samsung, Motorola...) ee Netbook/Smartbook (HP Airlife 100, Acer Aspire D250...) Tablette Multimedia (Archos, Samsung Galaxy Tab, ...) Automobile (Continental AutoLinq : Tesla, Ford...) Mais aussi : GPS, Rfrigerateur, Machine ` laver... e a
14 / 100
Et ca ressemble ` quoi ? a
15 / 100
Mobiles Disponibles
En 2008 : HTC Dream / G1
16 / 100
Mobiles Disponibles
En 2009 : Une quizaine (HTC, LG, Samsung, Motorola...)
17 / 100
Mobiles Disponibles
En 2010 : De tr`s nombreux mobiles e
18 / 100
Concurrents
Apple iPhone OS : leader en tlphonie, ferm... ee e Windows Mobile : vieillissant, va til revenir avec v7 ? Palm : prcurseur, en perte de vitesse, PalmPr ? e e Blackberry : plutot ddi entreprise mais se dmocratise e e e Symbian : passage en open source octobre 2009 Mais la plupart de ces concurrents nont pas la exibilit dAndroid e qui ne se destine pas quaux tlphones mobiles ! ee
19 / 100
Parts de March e
20 / 100
Les versions...
Versions dAndroid : 1.5 : Cupcake (avril 2009) 1.6 : Donut (septembre 2009) 2.0/2.1 : Eclair (Octobre 2009) 2.2 : FroYo (Mai 2010) 2.3 : Gingerbread (Novembre 2010) 3.0 : Honeycomb (Fvrier 2011) e Remarques :
Evolution tr`s rapide ! e Problmatique de dploiement e e
21 / 100
Cupcake 1.5
Support du Bluetooth A2DP et AVRCP Possibilit de se connecter e automatiquement ` un kit a bluetooth Ajouts de widget Ajout des dossiers sur le Home Transition dcrans animes e e
30 Avril 2009 Linux Kernel 2.6.27 Possibilit denregistrer et de e regarder des vidos e Upload de vidos vers Youtube et e dimages vers picasa directement depuis le tlphone ee Un nouveau clavier avec saisie prdictive e
22 / 100
Donut 1.6
Amlioration des recherches pour e intgrer les bookmarks, e lhistorique, les contacts et le web depuis lcran de dmarrage e e 15 Septembre 2009 Linux Kernel 2.6.29 Nouvelle version du market Refonte de la camera et de la galerie (suppression multiple...) Mise ` jour de la recherche a vocale. Rponses plus rapides et e meilleure intgration (appel de e contacts..) Support de nouveaux protocoles de communication Support des crans en WVGA e Amlioration des performances e Framework Gesture disponible Navigation Google Gratuite
23 / 100
Eclair 2.1
Support de Microsoft Exchange Support du ash intgr pour e e lappareil photo 26 Octobre 2009 Linux Kernel 2.6.29 Optimisation des performance Support des ecrans de taille et de rsolution direntes e e Interface revue Nouvelle interface pour le navigateur et support d HTML5 Nouvelle liste des contacts Intgration de Google Maps 3.1.2 e Zoom digital Amlioration du Multitouch e Amlioration du clavier virtuel e Bluetooth 2.1 Live Wallpapers
24 / 100
Froyo 2.2
Mise ` jour du Launcher a Support du Hotspot Wi-Fi 20 Mai 2010 Linux Kernel 2.6.32 Amlioration gnrale de lOS e e e (vitesse, memoire...) Mise en place de JIT Integration du moteur JavaScript V8 de chrome dans le navigateur Amelioration du support de Microsoft Exchange Mise ` jour du Market et mise ` a a jour automatiques Passage rapide dun clavier dune langue ` une autre a
25 / 100
Gingerbread 2.3
Novembre 2010 Linux Kernel 2.6.xxx Support des technologies NFC (Near Field Communication) Client SIP amior e e
26 / 100
HoneyComb 3.0
27 / 100
28 / 100
29 / 100
30 / 100
31 / 100
Android Market
Syst`me standard de tlchargement dapplications e ee Pas de vrications des applications e Navigation laborieuse :
Par catgorie e Recherche par mots cls e Par gratuit / payant
Classement enfant, adolescent, adulte... Ncessite un terminal certi (camera, 3G, compas...) e e Gestion des autorisations avant linstallation Possibilit de rendre payant les app. e Des centaines de milliers dapp.
32 / 100
Android Market
25$ pour sinscrire en tant que developpeur 70% du prix revient au developpeur, 30% a Google Revenus via Google CheckOut Achat & vente possible selon les pays 57% dapplications gratuites App Store : 28% Idem Blackberry App World, Nokia Ovi Store...
33 / 100
Markets Alternatifs
AppsLib (Archos) : http://appslib.com AndroLib : http://www.androlib.com Market Samsung ... Tout a fait autoris par Google e Libre de fonctionnement Acces aux terminaux non certis e
34 / 100
Sans Market
Via les outils du SDK Via des applications disponibles sur le market et la carte SD
35 / 100
Environnement de dveloppement e
Outils :
Eclipse SDK Android ADT : Android Development Tools (plugin eclipse) AVD : Android Virtual Device ADB : Android Debug Bridge
36 / 100
Architecture Gnrale e e
37 / 100
Noyau Linux
38 / 100
Noyau Linux
Android repose sur un noyau Linux version 2.6 Gestion de la securit e Gestion de la mmoire e Gestion des processus Gestion rseau e Drivers ... Ce noyaux agit comme une couche dabstraction entre le matriel et le restes des couches applicatives. e
39 / 100
Compatibilit Linux e
Noyau driv de Linux mais a t modi par Google : e e ee e Pas de systeme X-Window nativement Ne supporte pas toutes les libraires GNU standards Dicult de porter toutes les applications (ou librairies) e compatibles linux. Mais le support de X-Window reste nanmoins possible e Le Code de google nest pas revers dans le noyau linux car e Android forme un nouvel arbre de developpement. En Avril 2010 Google a annonc quil allaient employer une e quipe pour travailler sur le systeme Linux. e
40 / 100
Android Runtime
41 / 100
Android Runtime
Code Natif : Codage via le Android NDK JNI permet le pont entre le natif et Dalvik Peu utilis sauf pour les jeux (habitude de programmeurs) e Permet des gains de performance parfois. Cela dpend de e lapplication.
42 / 100
Android Runtime
DVM : Dalvik Virtual Machine
- Ecrite par Dan Bornstein - Dalvik : village de pcheurs en islande e - Une sorte de JVM optimise pour les syst`mes limits en e e e mmoire et en puissance. e - Excute les applications .dex compils depuis le code e e automatiquement par le SDK avec loutil dx - Utilise du ByteCode spcique et non du ByteCode Java e - Optimise galement pour tre multi-instance sur un seul e e e terminal.
Aout 2010 : Oracle (Java) porte plainte envers Google pour leur implmentation de Dalvik qui serait bas sur le code e e source de java...
43 / 100
Android Runtime
Android inclus un ensemble de librairies de base proposant ainsi la quasi totalit des fonctionnalits disponibles dans le e e language de programmation Java. Chaque application sous Android utilise sa propre instance dune DVM.
Pas de probl`me dinteraction entres les applications e Espace protg e e Pas de risque de plantage gnral e e Dou la necessit dune VM optimise ! e e
44 / 100
Librairies
45 / 100
Librairies
Android inclus un ensemble de librairies C/C++ Utilises par les applications Android e Accessibles au dveloppeur via le SDK e Quelques unes de ces librairies
- Librairie Syst`me C : une implmentatition driv de e e e e limplmentation BSC des librairies standard C (libc) e - LibWebCore : Un moteur de navigateur internet moderne utilis autant pour navigateur android que pour les vues web e intgrables e - SQLite : un systeme de gestion de base de donnes relationnel e lger et puissant disponible pour toutes les applications. e
46 / 100
Librairies
...
- Librairies MultiMedia : bases sur PacketVideos e OpenCORE. Intgre le support de la lecture et de e lenregistrement de nombreux formats audio, vido et image e (MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG...) - Surface Manager : g`re lacc`s et lachage des direntes e e e vues (2D ou 3D) composant les applications - SGL : Le moteur de rendu pour limagerie 2D - Librairie 3D : Une implmentation base sur lAPI OpenGL ES e e 1.0. Intgrant ` la fois laccelration matrielle (si disponible) e a e e et laccleration logicielle. e - FreeType : Librairie de rendu de police bitmap et vectorielles.
47 / 100
Framework Applicatif
48 / 100
Framework Applicatif
49 / 100
Framework Applicatif
Plateforme de developpement Ouverte Architecture concue pour simplier la rutilisation des e composants Publication des capacits des applications e Les autres applications peuvent utiliser ces capacits e Charg facilement les apps. e
50 / 100
Framework Applicatif
Une application est compose dun ensemble de services et de e syst`mes incluant : e Un ensemble de vues Views utilises pour construire e lapplication (listes, grilles, zone de saisies, boutons ou encore navigateur web intgrable) e Content Provider permettant aux applications daccder e aux donnes dautres applications (Contacts...) ou de partager e leur propres donnes. e Resource Manager permettant dacceder a des ressources tel que des chaines de caract`res, des images ou des layout e (le tout paramtrable selon de multiples crit`res : taille de e e lcran, internationalisation...) e
51 / 100
Framework Applicatif
Mais aussi : Notication Manager permettant ` chaque application a dutliser la barre de statut gnrale pour y intgrer ses propres e e e informations. Activity Manager : composant qui gere le cycle de vie dune application et fournit les outils de navigation applicative.
52 / 100
Applications
53 / 100
Framework Applicatif
Derni`re couche sur Android e Plusieurs sont intgres dans le syst`me : e e e Ecran Home Gestion des Emails Gestion des SMS/MMS Gestion de la tlphonie ee Google Maps... Application supplmentaires installables e Toutes les applications sont crites via le mme SDK ! e e
54 / 100
Gnralits e e e
Les applications sont crites en Java e Le code compil dex ainsi que les ressources (images, e layout...) sont regroups dans une archive au format apk e par les outils du SDK Cette archive apk est un tout permettant la distribution et linstallation de lapplication sur nimporte quelle plateforme android.
55 / 100
Indpendance e
Chaque application Android est isol des autres ` plusieurs e a niveaux :
- Chaque application tourne sur son propre process Linux. Ce processus est lanc par Android d`s quune partie du code e e ncessite une xcution et inversement tue les processus dont il e e e na plus dutilit. e - De plus chaque process utilise sa propre machine virtuelle Dalvik. Ainsi chaque application poss`de son propre e environnement. - Chaque application est associ ` un unique Linux User Id. ea Ainsi les chiers dune application ne sont pas visibles par les autres applications. (mais il existe des moyens de partager ces ressources, par exemple via les Content Provider) - Il est possible de forcer deux application de partager le mme e user ID (et donc de partager des chiers nativement). Il est egalement possible donc dutiliser la mme VM et le mme e e processus Linux.
56 / 100
Indpendance e
Un des aspect les plus important dAndroid est la rutilisabilit e e
- Chaque application peut utiliser des morceaux dautres applications (si elle le permettent) - Par exemple si votre application permet de retoucher des photos et que vous dsirez publier cette photo vous pouvez e utiliser toutes les applications dj` prsentes pour raliser cette ea e e tche (facebook, picasa, mail ...). Et sans utiliser le code de a cette application tierce juste en appeler la partie interessante.
Elements Fondamentaux
58 / 100
Les Activity
Une activit (Activity) = une IHM pour une action e utilisateur prcise : e
- Liste dlments parmis lesquels lutilisateur peut choisir ee - Achage dune image avec un titre - Achage dun calendrier pour choisir une date
Chaque activit est indpendante des autres e e Une activit doit heriter de la classe : android.app.Activity e
59 / 100
Les Activity
Une application est donc un ensemble dactivits e On doit dnir quelle est la premi`re activit ` excuter lors e e ea e du lancement de lapplication Pour naviguer dans lapplication chaque activit doit e elle-mme lancer lactivit suivante. e e
60 / 100
Les Activity
Chaque activit est assigne ` une fentre e e a e - Plein cran e - Fenetre ottante Une activit peux aussi possder des sous fenetres e e - Pop-up ...
61 / 100
Les Activity
Le rendu dune activit est dnit par : e e Une ou un ensemble de vues Les vues hritent de la classe android.view.View e Chaque vue controle une zone rectangulaire de lactivit e Lorganisation est dnit par un arbre de Layout ou chaque e feuille est une vue. Un grand nombre de vues standards sont proposes e (combobox, zone de texte, bouton...) Possibilit de dnir des vues personnalises e e e
62 / 100
Les Activity
Les layouts :
- Agents de placement - Plusieurs layouts sont proposs en standard e
Possibilit de dnir ses propres Layout e e Les layout sont utilisable via des chier XML ou via le code Java
63 / 100
Les Activity
Pour rsumer : e Une fois larbre de vues dni on utilise la mthode suivante : e e - Activity.setContentView()
64 / 100
Service
Un service ne poss`de pas dinterface e Tourne en arri`re plan en continue (ou presque) e Exemple :
Lecture de musique Collecte de donnes achables dans une activit e e Suivi GPS Vrication de mise ` jour e a ...
65 / 100
Service
66 / 100
Service
Un service sexcute dans un Thread et donc ne bloque pas le e reste du terminal quand il tourne en fond.
67 / 100
Broadcast Receiver
68 / 100
Broadcast Receiver
Une application peux contenir plusieur receiver : un par v`ment important e e Les receiver nont videmment pas dinterface e Ils peuvent lancer des activits en cas de besoin e Ils peuvent galement utiliser le NoticationManager pour e signaler quelque chose ` lutilisateur (prfrable) a ee
- Icone, vibration, alerte sonore, clignotement diode...
69 / 100
Content Provider
Les content provider permettent de partager du contenu entre les applications Une application sen sert pour rendre public certaines de ses donnes e Le donnes sont donc exposes dans une classe hritant de e e e android.content.ContentProvider
Methode query() Insert() Update() delete()...
70 / 100
Content Provider
Les autres applications nacc`dent pas directement ` la classe e a de ContentProvider Utilisation dun ContentResolver qui va rediriger les requetes vers le provider voulu Si lon tente dacceder ` une resouce dune application ntant a e pas en cours dexcution le syst`me Android se charge de la e e lancer avant.
71 / 100
Intent
Les content providers sont activs par une requte dun e e content resolver Mais les 3 autres systemes (Activity, Service, BroadCast Receiver) sont activs par des messages asynchrone appells e e Intent Un intent drive de android.content.Intent e Un intent poss`de une action et un contenu particulier e
72 / 100
Intent
Pour les activits et les services il nomme laction dsire et e e e prcise lURI des donnes sur lesquelles agir. e e
- Acher / image - Editer / texte - ...
73 / 100
Intent
74 / 100
Intent
75 / 100
Intent
- Le syst`me va alors appeler la mthode onReceive() sur tous e e les broadcast receivers intrsss en passant en param`tre ee e e lIntent.
76 / 100
Intent
La catgorie e
- Une chaine de caract`re prcisant quel type de composant e e peut g`rer lintent. e - Plusieurs catgories peuvent tre prcises. e e e e - Exemples :
e e * CATEGORY BROWSABLE : Le contenu peut tre ach dans le navigateur * CATEGORY HOME : Lactivit est de type Home e * CATEGORY LAUNCHER : Lactivit est lancable par le e launcher et donc doit y tre prsente e e * CATEGORY PREFERENCE : lactivit est un panneau de e prfrences ee
77 / 100
Intent
Quelques exemples :
- ACTION VIEW content://contacts/people/1 Ache les information sur le contact 1 - ACTION DIAL content://contacts/people/1 Ache le mode dappel rempli avec les informations du contact 1 - ACTION VIEW tel:123 Ache le mode dappel rempli avec 123. (ACTION VIEW sadapte donc au contenu) - ACTION DIAL tel:123 Idem - ACTION EDIT content://contacts/people/1 Permet de modier les informations du contact 1 - ACTION VIEW content://contacts/people/ Ache la liste des contacts (le choix dun de ces contact gnrera un Intent e e pour acher ce contact)
78 / 100
Manifest
Fichier XML Prcise larchitecture de lapplication e Chaque application doit en avoir un AndroidManifest.xml ` la racine du projet a
79 / 100
Manifest
Contenu :
- Prcise le nom du package java utilisant lapplication. Cela e sert didentiant unique ! - Il dcrit les composants de lapplication e - - Liste des activits, services, broadcast receivers e - - Prcise les classes qui les implmentent e e - - Prcise leurs capacits (` quels intents ils ragissent) e e a e - - Ceci permet au syst`me de savoir comment lancer chaque e partie de lapplication an de satisfaire au principe de rutilisabilit. e e
80 / 100
Manifest
Contenu suite :
Dnit les permissions de lapplication e Droit de passer des appels Droit dacceder ` Internet a Droit dacceder au GPS ... Prcise la version dAndroid minimum ncessaire e e Dclare les librairies utilises e e Dclare des outils dInstrumentation (uniquement pour le e dveloppement) e
81 / 100
Manifest
Conventions :
- Seuls deux lments sont obligatoire ee - - < manifest > : contient le package, la version... Englobe tout le chier - - < application > : dcrit lapplication et contiendra la liste de e ses composants. - Les donnes sont passes en tant quattribut et non en tant e e que contenu - Tous les attributs commencent par android: (sauf quelques un dans < manifest >)
82 / 100
Manifest
Les ressources
- Au lieu de contenir les donnes en tant que tel le chier e manifest peut faire appel ` des ressources a - < activityandroid : icon = @drawable/smallPic... > - Ces ressources sont dnies dans le rpertoire res de e e lapplication.
83 / 100
Manifest
Permissions
- Une application ne peux pas utiliser certaines fonctionnalits e sauf si il le prcise dans le chier Manifest e - Il faut donc prciser les permissions ncessaires grace ` : e e a < uses permission > - Il existe des permission standard : - android.permission.CALL EMERGENCY NUMBERS - android.permission.READ OWNER DATA - android.permission.SET WALLPAPER - android.permission.DEVICE POWER
84 / 100
Manifest
Intent Filter - Ils informent le systeme ` quelle intent les composants a peuvent ragir e - Un composant peut avoir plusieurs ltres - Editeur de texte - - Filtre pour editer un document existant - - Filtre pour initier un nouveau document - Un ltre doit posseder une action qui dnit ` quoi il e a correspond
85 / 100
Manifest
Exemple
86 / 100
Rsum : e e - Lapplication A doit acher une carte - A prpare lintent avec les donnes necessaires e e - A appele startActivity() avec cet intent - Le systeme trouve lapplication B qui sait gerer cet Intent - Lapplication B ache la carte - Lutilisateur ferme cette carte (bouton back) - Lapplication A reprends la main
87 / 100
Du point de vue de lutilisateur : - 1 seule application (A et B sont confondues) Du point de vue du syst`me : e - 2 applications - 2 DVM - 2 process - 1 Tche = 1 Application au sens utilisateur. a
88 / 100
Une tche : a - Est une pile dactivits e - La premi`re est celle qui a t initie par lutilisateur e ee e - Les activits peuvent provenir de direntes applications e e - Lensemble forme un tout - - Mis en arriere plan en mme temps e - - Remise au premier plan dans son ensemble Comportement par dfaut modiable via le manifest et le tag e < activity > et ses ags
89 / 100
Quand le premier composant dune application ncessite une e excution Android demarre un nouveau processus Linux pour e gerer ce composant Chaque composant peut prciser dans la Manifest (via e lattribut process) si il doit sexcuter dans un nouveau e processus ou si il doit partager un processus existant Deux composant de deux applications peuvent aussi partager le mme processus si : e - Elle utilisent le mme Linux User ID e - Elles sont signes par la mme autorit e e e
90 / 100
Attentions pour les composant utilis dans le mme processus e e - Ne pas faire de longues oprations lors des appels par le e Systeme ( View.onKeyDown() ) sinon cela bloquera tout le reste des composants. - Penser ` utiliser des Threads pour les traitements longs. a - Utiliser la classe classique Java de Threads - Android fournit aussi des classes utilitaires pour simplier lutilisation des Threads
91 / 100
Cycle de Vie
Une activit poss`de trois tats : e e e - Active (running) : Quand lactivit est au premier plan et e recoit les actions utilisateur. - Paused : Quand elle est toujours visible mais na pas le focus (autre activit transparente par dessus ou activit ne prenant e e pas tout lcran) e - - Toujours vivante - - Mais peut etre tue en cas de resources tr`s limites e e e - Stopped : Quand elle nest plus visible - - Toujours vivante - - Mais sera tue d`s que des resources seront ncssaires. e e e e
92 / 100
Cycle de Vie
Le syst`me tue les activits en etat stopped (ou paused) e e de deux mani`res : e - En appelant la mthode nish() e - En tuant le processus tout simplement Quand lactivit sera a nouveau demande : e e - Doit tre compltement reconstruite e e - Doit Potentiellement recharger son dernier tat e
93 / 100
Cycle de Vie
Une activit est notie de ses changement dtat par lappel e e e ` ses mthodes : a e - void onCreate(Bundle savedInstanceState) - void onStart() - void onRestart() - void onResume() - void onPause() - void onStop() - void onDestroy()
94 / 100
Cycle de Vie
An de sauvegarder le contexte le syst`me appele e onSaveInstanceState() avant de rendre lapplication potentiellement tuable (paused...) Cet appel fournit un bundle cl/valeurs pour que le e dveloppeur puisse sauvegarder ltat e e Au prochain appel de onCreate() ce bundle sera fournit Il est galement fournit via un appel ` e a onRestoreInstanceState() Lappel ` la sauvegarde nest faite quen cas de risque de a terminaison de lactivit par le syst`me et non si cela vient e e dune action utilisateur (back)
95 / 100
Hello World
Crer un nouveau projet : e
96 / 100
Hello World
Organisation des dossiers : src : sources gen : code gnr e ee res : ressources drawable : images layout : layout values : constantes Manifest
97 / 100
Hello World
Manifest :
98 / 100
Hello World
Ressources (Layout, String, Images) On y acc`de par @dossier/nom ou R.dossier.nom e Ressources alternatives : selon la langue, le sdk, lecran...
99 / 100
Hello World
Ativity
100 / 100
Hello World
101 / 100