Professional Documents
Culture Documents
I. Fiche Projet
1. Intitul de l'atelier : Initiation la programmation Android 2. Type de public : Tous publics 3. Pr-requis des publics : Un minimum de connaissance de la programmation 4. Pr-requis pour l'animateur : Connatre le dveloppement Android 5. Dates et dure de l'atelier : Les Samedis 8 et 29 octobre 2011 6. Descriptif dtaill : Depuis quelques annes, notre rapport la lecture, la communication mais aussi nos usages quotidiens via Internet ont t modifs grce des systmes sophistiqus bass sur des tlphones portables ou tablettes tactiles.Directement connects des ofres de services ou mme nos rseaux sociaux, professionnels, ces priphriques sont aujourdhui partie intgrante de notre quotidien. Cest un territoire en pleine volution et susceptible dtre utilis par les artistes pour faire merger des projets innovants.Pour cela, la matrise de la programmation sous Android semble tre un point daccroche pertinent.L'intervenant propose cette fn deux samedis numriques.Prenant soin dans un premier temps de prsenter lcosystme et le dveloppement Android, il rpartira ensuite par petits groupes des missions de dveloppement raliser dans un projet existant, et permettant aux participants dtudier divers aspects dune application ludique. 7. Objectifs pdagogiques : Expliquer l'cosystme de la plateforme de dveloppement Android Expliquer les concepts de bases de la programmation d'applications Android Lister les outils et pratiques ncessaires Fournir au stagiaire les connaissances pour lui permettre de crer lui mme des applications simples, ainsi que les ressources lui permettant de poursuivre ses recherches de faon personnelle.
8. Droulement : Deux ateliers : Premier atelier, 1h de prsentation thorique, puis ralisation d'une suite d'exercices en manipulation. Deuxime atelier, 2h d'exercices de rappel, puis ralisation de divers exercices au choix du stagiaire. 9. Rsultats attendus : Le stagiaire est capable de poursuivre son apprentissage du dveloppement Android de manire autonome. 10. Ressources ncessaires (humaines, matrielles, logicielles) : Un poste sous *nix, disposant de l'IDE Eclipse et du plugin Android (ADT) 11. Nom et Contacts de l'intervenant : Thibault Jouannic http://thibault.jouannic.fr thibault@jouannic.fr 06 30 47 30 50
Sommaire
1- Bienvenue dans le monde Android........................................................................................ 5 1.1- Qu'est-ce qu'Android ?...............................................................................................5 1.2- Quels sont les avantages d'Android ?.........................................................................5 1.3- Et les inconvnients ?............................................................................................... 5 2- Autopsie du systme............................................................................................................ 6 3- Les outils de dveloppement................................................................................................ 6 4- Avant d'aller plus loin, les mains dans le cambouis...............................................................7 4.1- Notre premire application....................................................................................... 7 4.2- Modifer du code.......................................................................................................7 5- Comprendre une application................................................................................................ 8 5.1- Composants fondamentaux....................................................................................... 8 5.2- Structure du rpertoire............................................................................................. 9 5.3- tude d'une activity................................................................................................10 5.4- Exercice.................................................................................................................. 11 6- Les interfaces graphiques...................................................................................................12 6.1- Exercice.................................................................................................................. 12 7- Travaux pratiques............................................................................................................... 13
2. Autopsie du systme
Android est compos de difrentes couches logicielles. Le noyau Linux (couche basse, communication avec le matriel, gestion de la mmoire, etc.) ; Android Runtime : Machine virtuelle Java, optimise pour une empreinte mmoire rduite ; Les bibliothques : fournissent les fonctionnalits de base du systme (Base de donne, rendu web, multimdia, etc.)
L' Application framework : ensembles d'APIS utilises par les applications, et donnant accs aux fonctionnalits du systme ; Les applications : Gmail, GoogleMap, Allocin, etc.
passer par un terminal rel ; Les exemples : le SDK est fourni avec de nombreux exemples, qui mettent en lumire la plupart des fonctionnalits disponibles ; Le plus important : la documentation, plus qu'abondante ;
Notez l'erreur qui apparat dans la marge : il manque un import de paquet. Pour corriger l'erreur, utiliser le raccourci Ctrl + Shift + O ; Relancez l'application et admirez le rsultat ;
peuvent envoyer des messages dans le vent, sans spcifer de destinataire spcifques. Lorsque la batterie atteint un niveau critique, o lorsqu'un nouveau rseau wif est dcouvert, des messages sont envoys. Les applications peuvent galement envoyer des messages. Un broadcast receiver est un composant qui peut souscrire certains types de messages, et efectuer d'autres actions leur rception. Les intent . Les messages en question sont appels intent . Les composants des applications sont lancs via des intents. Un intent peut tre global (sans cible dsigne), ou tre envoys un certain composant spcifque (ex : une autre activity de la mme application). Les content provider . Si une application gre un type de donnes particulier, elle peut mettre en place un content provider, qui permettra d'autres applications d'interagir avec les donnes en question. Par exemple, l'application de gestion des contacts fourni un content provider qui permet aux autres applications d'accder la liste des contacts. 5.2 Structure du rpertoire tudions d'un peu plus prs l'arborescence d'une application. Pour cela, nous allons crer un nouveau projet partir d'un sample du SDK. 1. File > New > Project ; 2. Android > Android Project ; 3. Create project from existing sample ; 4. Build target : Android 2.2 ; 5. Samples : SkeletonApp ; 6. Finish ; Un nouveau projet apparat dans la liste : SkeletonActivity. tudions de plus prs l'utilit des difrents rpertoires. Android 2.2 : contient la bibliothque Android ncessaire la compilation. La version dpend de la cible slectionne plus haut, et conditionnera les API disponibles ainsi que les types de priphriques sur lesquels l'application pourra tourner ; Src : Contient les sources java de l'application. Notez la prsence d'un package, au sens java du terme. Ce package doit tre prsent pour que l'application fonctionne. Pour le reste, vous tes libre d'organiser vos sources comme vous le souhaitez. Gen : Contient des fchiers automatiquement gnrs la compilation de l'application, et qui permettent Android d'accder aux ressources. Ne pas le modifer la main. Res : Contient les ressources structures de l'application. Les ressources comprennent des fchiers de styles, des fchiers de traductions, des fchiers de description d'interface (views), etc. Il est possible de fournir la mme ressource en fonction de difrents critres (taille de l'cran, orientation, clavier disponible ou pas, mode nuit ou pas, etc.).
Le systme appliquera la bonne ressource en fonction du contexte. Assets :Contient les ressources non structures (fchiers multimdia, modles 3d, donnes initiales, etc.) Tests : contient ventuellement le projet de tests, qui permet de mettre en place les tests unitaires du projet ; AndroidManifest.xml : Ce fchier, essentiel, est la carte d'identit de l'application. Dans ce fchier, on dcrit tous les composants de l'application (activities, services, etc.), l'icone utilise, le nom de l'application, les permissions ncessaires, les rsolutions d'cran supportes, etc. 5.3 tude d'une activity Maintenant que nous comprenons l'organisation d'une application, penchons nous plus en dtail sur le code de la principale (et seule) activity du projet. Ouvrez le fchier SkeletonActivity.java, et parcourons-le pas pas. Note : seules les lignes les plus intressantes seront dtailles.
package com.example.android.skeletonapp;
Liste des imports de paquets, qui indique quels endroits trouver les composants utilis dans notre code. Cette liste est auto-gnre grce au raccourci Ctlr +Shift + O.
public class SkeletonActivity extends Activity {
static final private int BACK_ID = Menu.FIRST; static final private int CLEAR_ID = Menu.FIRST + 1;
Dclare des identifants qui seront utiliss pour distinguer les difrentes entres du menu de l'application.
/** Called when the activity is frst created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
La mthode onCreate est appele une seule fois, quand l'activity est cre4. C'est cet endroit qu'elle doit tre confgure.
Dclare quel est le layout utiliser pour l'interface graphique de l'application. R est la classe auto-gnre qui contient toutes les rfrences vers les ressources.
((Button)fndViewById(R.id. back)).setOnClickListener(mBackListener); ((Button)fndViewById(R.id. clear)).setOnClickListener(mClearListener);
Dclare quels sont les lments qui ragiront au clic sur les difrents boutons.
@Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); menu.add(0, BACK_ID, 0, R.string.back).setShortcut('0', 'b'); menu.add(0, CLEAR_ID, 0, R.string.clear).setShortcut('1', 'c'); return true; }
Dclare le menu destin apparatre lors d'un appui sur le bouton menu du terminal Android.
4
5.4 Exercice Ajoutez un troisime bouton dans le menu de l'application, qui affiche Mission accomplie dans la zone de texte. Indices : 1. Modifez le layout xml de l'application pour ajouter un bouton ; 2. Ajoutez un OnClickListener au bouton ; 3. Crez une nouvelle entre dans le fchier strings.xml ; 4. Implmentez le listener ;
http://developer.android.com/resources/tutorials/views/index.html
2. Clic droit > New > File 3. File name : about_activity.xml 4. Finish 5. Utilisez l'interface pour rajouter un ScrollView, puis un LinearLayout (vertical), puis un TextView ; 6. Ajouter une entre dans le fchier strings.xml ; 7. Rfrencez cette entre dans le fchier layout ; 4. Implmentez le code qui permet d'utiliser le layout appropri dans la nouvelle activity ; 5. Utilisez un intent pour lancer la nouvelle activit ;
7. Travaux pratiques
Voici une mission un peu plus complexe, qui va mettre en application ce que vous avez appris. Construisez une application permettant de laisser un commentaire (sur le thme imaginaire de votre choix). Votre application doit disposer des fonctionnalits suivantes : 1. Un texte invite l'utilisateur laisser un commentaire ; 2. Une barre de notation (RatingBar) permet de saisir une note de 1 5 ; 3. Un champ de formulaire permet de saisir du texte ; 4. Un bouton permet de valider le commentaire ; 5. Une fois valid, le formulaire est rinitialis, et le commentaire est affich dans une notifcation (Toast) ; Cette mission mettra en jeu les comptences suivantes : 1. Crer un projet Android via Eclipse ; 2. Dfnir, sur papier, une interface graphique mobile ; 3. Implmenter cette interface en xml ; 4. Utiliser l'ADT comme assistant de dveloppement ; 5. Utiliser la documentation pour trouver les informations ncessaires ; 6. Tester une application sur un AVD ;
Liens
Le site de rfrence pour les dveloppeurs android : http://developer.android.com/index.html Le blog des dveloppeurs android : http://android-developers.blogspot.com/ Reddit anyone ? http://www.reddit.com/r/android Le blog de Cyril Mottier, dveloppeur android expriment http://android.cyrilmottier.com/ Stackoverflow, site d'entraide entre dveloppeurs http://stackoverflow.com/tags/android Le site Android Stackexchange, site d'change entre passionns d'Android http://android.stackexchange.com/
Exemples tudier
Open-source android apps http://code.google.com/p/apps-for-android/ Une liste d'applis open-source http://en.wikipedia.org/wiki/List_of_free_software_Android_applications Les samples du SDK http://developer.android.com/resources/samples/get.html Les sources d'Android, beaucoup de bonnes applis http://source.android.com/
Cette oeuvre est mise disposition selon les termes de la Licence Creative Commons Paternit Pas dUtilisation Commerciale Pas de Modifcation 2.0 France.
Kawenga - territoires numriques 21 boulevard Louis Blanc 34000 MONTPELLIER www.kawenga.org / contact@kawenga.org / + 33(0)4 67 06 51 66