Projet Android (LI260)

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(){...}
}