LI260 : description et informations pratiques Android en quelques mots Outils Projet Android (LI260) Nicolas Baskiotis Universite´ Pierre et Marie Curie (UPMC) Laboratoire d’Informatique de Paris 6 (LIP6) S2 - 2013 Au cœur d’une application LI260 : description et informations pratiques Android en quelques mots Plan LI260 : description et informations pratiques Android en quelques mots Outils Au cœur d’une application Outils Au cœur d’une application LI260 : description et informations pratiques Android en quelques mots Outils Au cœur d’une application Description de l’UE Objectifs du cours Apprendre : • a` faire un projet; • a` apprehender ´ un nouvel environnement (Android); • quelques nouveaux outils (design pattern, interface graphique, IDE). Ce n’est pas : • un cours de Java (pre-requis ´ obligatoire !!) • un cours Android • que du codage ´ Pre-requis Java (LI230), savoir ce qu’est : • une classe, une variable, un objet, une instance, • une methode ´ ´ (statique), un constructeur, l’heritage. LI260 : description et informations pratiques Android en quelques mots Outils Au cœur d’une application ´ Deroulement de l’UE En pratique • 1h45 de cours le lundi matin, • 3h30 de TME le mercredi matin, • web : http://webia.lip6.fr/˜baskiotisn (slides et infos) • email :[email protected] (mettre dans le titre [LI260]) ´ Evaluation • CC : 70% • un partiel sur machine (a ` mi-parcours) • un rapport (a ` la fin) • le code (a ` la fin) • participation (tout le temps) • Examen : 30% • soutenance orale (a ` la fin) • sur machine (a ` la fin) LI260 : description et informations pratiques Android en quelques mots Plan LI260 : description et informations pratiques Android en quelques mots Outils Au cœur d’une application Outils Au cœur d’une application LI260 : description et informations pratiques Android en quelques mots Outils Au cœur d’une application Android : pourquoi ? Contraintes : • leger ´ • independant ´ du hardware • interagir ´ ` sans interruption du systeme • deploiement ´ ´ ephone, ´ multiple (tel tablette, voiture, micro-onde, frigo . . . ) Avantages : • open source • gratuit • flexible • evolutif ´ • intuitif (Java) LI260 : description et informations pratiques Android en quelques mots Outils Au cœur d’une application Historique Quelques dates ´ 2003 : creation de la startup 2005 : rachat par Google 2007 : apparition de l’iphone d’Apple 2007 : Open Handset Alliance en ´ reaction 2008 : 1er smartphone sous Android 2010 : 1er smartphone Google sous Froyo (2.2) 2011 : OS unifie´ pour tablette et ´ ephone ´ tel (ICS, 4.0) ´ ephones ´ 2013 : 80% des tel vendus sous Android Janvier 2014 LI260 : description et informations pratiques Android en quelques mots Outils ´ Et concretement ? Plus simplement : une machine virtuelle, Dalvik, sur laquelle tourne les applications. Au cœur d’une application LI260 : description et informations pratiques Android en quelques mots Dalvik et Java Dalvik • Machine virtuelle : couche d’abstraction • execute ´ des fichiers .dex • mais n’est pas une JVM ! • une instance pour chaque process → sandbox ´ e, ´ stabilite´ du → espace proteg ` systeme • une application : • fichiers .dex • des ressources (images, textes, vues, . . . ) • un manifest (liste de regles, ` ´ permissions, specifications, ...) Outils Au cœur d’une application LI260 : description et informations pratiques Android en quelques mots Outils Au cœur d’une application En pratique ? ´ Beaucoup de differences... • cycle de vie tres ` different, ´ ` controle´ par le systeme (pas de main, mise en pause, destruction, . . . ) • memoire ´ ´ egalement ´ ` allouee par le systeme, • communication entre applications par le systeme ` (sandbox) • beaucoup d’el ´ ements ´ statiques (interfaces par exemple) • IDE quasi-obligatoire. LI260 : description et informations pratiques Android en quelques mots Plan LI260 : description et informations pratiques Android en quelques mots Outils Au cœur d’une application Outils Au cœur d’une application LI260 : description et informations pratiques Android en quelques mots Outils Au cœur d’une application ´ Outils de developpement SDK Android • SDK Manager : permet de tel ´ echarger ´ et de mettre a` jour les composants du SDK • • • • • la plateforme SDK ´ un emulateur : avd (android virtual device) les documentations l’API google (google maps et cie) des exemples, . . . • l’outil adb qui permet l’interaction avec le terminal (virtuel ou non) Un IDE : eclipse (ou netbeans, . . . ) • aide a` la programmation (si on sait dej ´ a` faire le boulot a` la main !) • gen ´ eration ´ automatique de fichiers • installation et debugage facilites ´ • plugin (https://dl-ssl.google.com/android/eclipse) LI260 : description et informations pratiques Android en quelques mots Outils Au cœur d’une application ´ A propos de l’emulateur AVD • Tres ` lent ! • fonctionnalites ´ non-disponibles • charge batterie • vibreur • tel ´ ephone, ´ sms, . . . • capteurs mouvement, capteurs luminosites, ´ GPS, . . . • rendu graphique pas toujours fidele ` ! ´ simplifie grandement . . . → avoir un terminal reel Alternative : AndroVM • tourne sous virtual-box • plus rapide, emule ´ ´ non supportees ´ par plusieurs fonctionnalites AVD. LI260 : description et informations pratiques Android en quelques mots Plan LI260 : description et informations pratiques Android en quelques mots Outils Au cœur d’une application Outils Au cœur d’une application LI260 : description et informations pratiques Android en quelques mots Outils Au cœur d’une application Application ˆ Une application peut etre : • au premier plan : un jeu, le ´ ephone, ´ tel un navigateur • en arriere ` plan : filtrage ` d’appel, mise-a-jour • intermittente : musique, • un widget : horloge, met ´ eo ´ ´ et avoir differents types de composants : • activite´ : un programme au premier plan avec interface • service : un programme sans interface • fournisseur de contenu : partage de donnees ´ avec d’autres applications • recepteur ´ ´ ´ de diffusion : pour recup erer des informations LI260 : description et informations pratiques Android en quelques mots Outils Au cœur d’une application ´ Caracteristiques d’une application ´ Independance • chaque appli tourne dans son propre process et dans sa propre machine virtuelle, → a son propre environnement, ses propres ressources, ses propres fichiers ´ Reutilisabilit e´ • chaque appli peut utiliser des composants d’autres applis : ` → le systeme doit pouvoir lancer un bout d’appli et non sa totalite´ → pas de main ! LI260 : description et informations pratiques Android en quelques mots Outils Au cœur d’une application Activite´ • une activite´ : une interface pour une action precise ´ ´ (equivalent ´ use case en modelisation) • chaque activite´ independante ´ • une appli peut etre ˆ ´ de multiples activites ´ composee • chaque activite´ peut lancer une autre activite´ • nec ´ essite ´ ´ ´ la premiere ` activite´ a` lancer de definir le point d’entree, LI260 : description et informations pratiques Android en quelques mots Outils La dure vie d’une activite´ ´ Etats principaux • active • en pause • arret ˆ ee ´ • terminee ´ Au cœur d’une application LI260 : description et informations pratiques Android en quelques mots Outils Au cœur d’une application Le fichier Manifest Fichier XML qui contient : • la description des composants de l’application • les permissions requises (acces ` internet, lecture/ecriture) ´ • les besoins de l’application • la capacite´ de chaque composant • les librairies utilisees ´ • la version d’android minimum, . . . LI260 : description et informations pratiques Android en quelques mots Fichier XML • une maniere ` de formatter du texte • definit ´ ´ une structure hierarchique • a` l’aide de balises emboitees ´ et d’attributs <?xml version="1.0" encoding="utf-8"?> <cursus> <cours semestre="S1" fili` ere="Info"> <id>LI260</id> <titre>Projet</titre> <ects>12</ects> </cours> <cours semestre="S2"> <id>LE10</id> <titre>Anglais</titre> <obligatoire val="true"/> </cours> </cursus> Outils Au cœur d’une application LI260 : description et informations pratiques Android en quelques mots Outils Au cœur d’une application Interface en java Une interface : • definit ´ un comportement qui ˆ ´ devra etre implement e´ par une classe • contient des methodes, ´ toutes abstraites • ne peut etre ˆ ´ instanciee • ne contient pas de constructeur • ni de variables d’instances • peut contenir des champs static final • peut etendre ´ d’autres interfaces Par exemple interface Photo { Image takePicture(); void setFlash(boolean b);} interface GPS { Point getPosition(); void turnOn(boolean b);} abstract class Phone { abstract void call(int number); abstract void answer();} class MySmartPhone extends Phone implements Photo, GPS { Image takePicture(){...} void setFlash(boolean b){...} Point getPosition(){...} void turnOn(boolean b){...} void call(int number){...} void answer(){...} }
© Copyright 2024 Paperzz