Vous êtes sur la page 1sur 37

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

Cours 6: Initiation Android

Christophe Morvan

Universit´e de Marne-la-Vall´ee

19 d´ecembre 2012

Android Cours 6: Initiation Android Christophe Morvan Universit´e de Marne-la-Vall´ee 19 d´ecembre 2012 1/40

Android

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

Architecture, vision syst`eme D´eveloppement Android De quoi s’agit-il ? Syst`eme d’exploitation pour

De quoi s’agit-il ? Syst`eme d’exploitation pour mat´eriel embarqu´e

T´el´ephone mobile

Tablette

Livre ´electronique

T´el´evision

• T´el´ephone mobile • Tablette • Livre ´electronique • T´el´evision • 2/40

Plan

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

1
1

Vue d’ensemble Historique Logiciel libre Organisation logicielle

2
2

Architecture, vision syst`eme Architecture en d´etails S´ecurit´e Android

3
3

D´eveloppement Android

Architecture, vision syst`eme Architecture en d´etails S´ecurit´e Android 3 D´eveloppement Android 3/40

Vue d’ensemble

Historique

Architecture, vision syst`eme

Logiciel libre

D´eveloppement Android

Organisation logicielle

Historique (entreprise)

Chronologie

Oct. 2003 Naissance d’Android

Aoˆut 2005 rachat de la soci´et´e par Google

Nov. 2007 fondation de la Open Handset Alliance

Nov. 2007 sortie de la premi`ere version beta

Sept. 2008 premi`ere version stable – premier t´el´ephone

F´ev. 2012 : 300 millions de mat´eriels Android (850 000 t´el´ephones activ´es par jour)

t´el´ephone • F´ev. 2012 : 300 millions de mat´eriels Android (850 000 t´el´ephones activ´es par jour)

Vue d’ensemble

Historique

Architecture, vision syst`eme

Logiciel libre

D´eveloppement Android

Organisation logicielle

Historique des versions

Versions majeures

Nov. 2007 sortie de la premi`ere version beta

Sept. 2008 1.0 premi`ere version stable – premier t´el´ephone

Oct. 2009 2.0 puis 2.1 (Eclair)

Mai 2010 2.2.x (Froyo)

Dec. 2010 2.3.x (Gingerbread)

Fev 2011 3.x (Honeycomb) tablettes

Octobre 2011 4.0.x (Ice cream sandwitch) tablettes + t´el´ephones

Juin 2012 4.1 puis 4.2 (Jelly Bean)

Octobre 2011 4.0.x (Ice cream sandwitch) → tablettes + t´el´ephones • Juin 2012 4.1 puis 4.2

Vue d’ensemble

Historique

Architecture, vision syst`eme

Logiciel libre

D´eveloppement Android

Organisation logicielle

Android Open Source

Android Organisation logicielle Android Open Source Android est Open source Depuis fin 2008, le mod`ele de

Android est Open source Depuis fin 2008, le mod`ele de d´eveloppement d’Android est fond´e sur l’ouverture du code La licence est celle de Apache Cette licence est relativement permissive

est fond´e sur l’ouverture du code La licence est celle de Apache Cette licence est relativement
est fond´e sur l’ouverture du code La licence est celle de Apache Cette licence est relativement

Vue d’ensemble

Historique

Architecture, vision syst`eme

Logiciel libre

D´eveloppement Android

Organisation logicielle

Le logiciel libre - GNU

1983 : D´ebut du projet GNU par Richard M. Stallman GNU = GNU’s Not Unix
1983 : D´ebut du projet GNU par Richard M. Stallman GNU = GNU’s Not Unix

1983 : D´ebut du projet GNU par Richard M. Stallman GNU = GNU’s Not Unix

Objectif: cr´eer un Unix libre

Principes du logiciel libre (licence GPL)

droit d’utiliser le logiciel

droit d’´etudier les sources

droit de modifier ces sources

droit de diffuser ses modifications avec les sources

Cons´equences

=

Libre

Libre

=

non prot´eg´e

gratuit

modifications avec les sources Cons´equences = • Libre • Libre = non prot´eg´e gratuit 8/40

Vue d’ensemble

Historique

Architecture, vision syst`eme

Logiciel libre

D´eveloppement Android

Organisation logicielle

Les licences

Architecture, vision syst`eme Logiciel libre D´eveloppement Android Organisation logicielle Les licences 9/40

Vue d’ensemble

Historique

Architecture, vision syst`eme

Logiciel libre

D´eveloppement Android

Organisation logicielle

Quelques marques historiques

Le projet Gnu comporte une centaine de logiciels libres (Langages de programmation, ´editeurs de texte, client courriel

)

de programmation, ´editeurs de texte, client courriel ) Hors du projet Gnu Avr. 1995 D´emarrage de

Hors du projet Gnu Avr. 1995 D´emarrage de Apache

Fev. 1998 D´emarrage de Mozilla

Juil. 2000 D´emarrage de OpenOffice.org

2001 D´emarrage de VideoLAN (vlc)

Mai 2002 OpenOffice.org 1.0

Juin 2002 Mozilla 1.0

2008 Firefox 3.0 – OpenOffice.org 3.0

Jan. 2011 LibreOffice 3.3

2011 Firefox 4.0 (17.0 aujourd’hui)

Fev. 2012 VLC 2.0

– OpenOffice.org 3.0 Jan. 2011 LibreOffice 3.3 2011 Firefox 4.0 ( → 17.0 aujourd’hui) Fev. 2012

Vue d’ensemble

Historique

Architecture, vision syst`eme

Logiciel libre

D´eveloppement Android

Organisation logicielle

Linux - Chronologie

Android Organisation logicielle Linux - Chronologie Android – Linux Android s’appuie sur le noyau Linux.

Android – Linux Android s’appuie sur le noyau Linux.

Android – Linux Android s’appuie sur le noyau Linux. Noyau Linux Linux est un syst`eme d’exploitation
Android – Linux Android s’appuie sur le noyau Linux. Noyau Linux Linux est un syst`eme d’exploitation

Noyau Linux Linux est un syst`eme d’exploitation lanc´e en octobre 1991 par Linus Torvalds un ´etudiant Finlandais de 21 ans

1991 par Linus Torvalds un ´etudiant Finlandais de 21 ans Chronologie Oct 1991 Linux 0.01 Mar
1991 par Linus Torvalds un ´etudiant Finlandais de 21 ans Chronologie Oct 1991 Linux 0.01 Mar

Chronologie Oct 1991 Linux 0.01

Mar 1994 Linux 1.0 (mars 95)

Jui 1996 Linux 2.0 (aoˆut 99)

Mai 2000 Linux 2.4

D´ec. 2003 Linux 2.6

Juil. 2011 Linux 3.0

mars 95) Jui 1996 Linux 2.0 ( → aoˆut 99) Mai 2000 Linux 2.4 D´ec. 2003

Vue d’ensemble

Historique

Architecture, vision syst`eme

Logiciel libre

D´eveloppement Android

Organisation logicielle

Android libre ?

Android Organisation logicielle Android libre ? Motif num´ero 1 Favoriser l’adoption d’Android par les

Motif num´ero 1 Favoriser l’adoption d’Android par les fabriquants de t´el´ephones. Ils peuvent modifier la version canonique d’Android pour correspondre `a leurs souhaits (ceux de leurs clients) Ex : Samsung TouchWiz, HTC Sense

de leurs clients) Ex : Samsung TouchWiz , HTC Sense Autres motifs • Utiliser le noyau

Autres motifs

Utiliser le noyau linux

B´en´eficier du travail de d´eveloppeurs tiers

• B´en´eficier du travail de d´eveloppeurs tiers Attention Le projet Android est libre, pas dirig´e par

Attention Le projet Android est libre, pas dirig´e par la communaut´e.

du travail de d´eveloppeurs tiers Attention Le projet Android est libre, pas dirig´e par la communaut´e.
du travail de d´eveloppeurs tiers Attention Le projet Android est libre, pas dirig´e par la communaut´e.

Vue d’ensemble

Historique

Architecture, vision syst`eme

Logiciel libre

D´eveloppement Android

Organisation logicielle

Organisation logicielle

Android Organisation logicielle Organisation logicielle Principes g´en´eraux Noyau Linux Un unique utilisateur

Principes g´en´eraux Noyau Linux Un unique utilisateur humain qui n’a que quelques privil`eges d’administration (au travers une application d´edi´ee) L’utilisateur peut installer des applications (principalement en

utilisant une application d´edi´ee) En principe ces applications sont ´ecrites en java et sont ex´ecut´ees par une machine virtuelle sp´ecifique (Dalvik) Chaque application doit sp´ecifier ses utilisations (r´eseaux,

t´el´ephonie, contacts,

)

(Dalvik) Chaque application doit sp´ecifier ses utilisations (r´eseaux, t´el´ephonie, contacts, ) 13/40

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

Architecture Android

Architecture en d´etails S´ecurit´e Android

vision syst`eme D´eveloppement Android Architecture Android Architecture en d´etails S´ecurit´e Android 15/40

Mat´eriel

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

Architecture en d´etails S´ecurit´e Android

Processeur

Android est con¸cu pour ˆetre d´eploy´e en priorit´e sur des architectures mat´eriels embarqu´ees

Arm

x86

sur des architectures mat´eriels embarqu´ees Arm x86 Environnement Multitude de capteurs physiques • Interface

Environnement Multitude de capteurs physiques

Interface tactile

GPS, acc´el´erom`etres, gyroscopes, magnetom`etres,

Multitude de connexion r´eseau

gsm/edge, umts

Wifi

Bluetooth

gyroscopes, magnetom`etres, Multitude de connexion r´eseau • gsm/edge, umts • Wifi • Bluetooth 16/40

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

Architecture en d´etails S´ecurit´e Android

Quelques applications cl´es

d´etails S´ecurit´e Android Quelques applications cl´es T´el´ephonie Android comprends une application

T´el´ephonie Android comprends une application principale pour acc´eder aux fonctions de t´el´ephonie.

principale pour acc´eder aux fonctions de t´el´ephonie. Interface Une application particuli`ere ( home/Launcher )
principale pour acc´eder aux fonctions de t´el´ephonie. Interface Une application particuli`ere ( home/Launcher )

Interface Une application particuli`ere (home/Launcher) donne acc`es `a l’utilisateur aux fonctions et aux applications install´ees sur l’appareil.

fonctions et aux applications install´ees sur l’appareil. Applications Google (non ouvertes) En dehors de l’ensemble

Applications Google (non ouvertes)

En dehors de l’ensemble des applications ouvertes int´egr´ees dans Android, Google fournit plusieurs applications Android.

de l’ensemble des applications ouvertes int´egr´ees dans Android, Google fournit plusieurs applications Android. 17/40

Activit´es

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

Architecture en d´etails S´ecurit´e Android

Android Architecture en d´etails S´ecurit´e Android Observation Le d´emarrage et l’arrˆet d’un

Observation Le d´emarrage et l’arrˆet d’un processus/programme sont des op´erations relativement coˆuteuses. Dans un environnement embarqu´e il peut ˆetre judicieux de limiter les d´emarrages et les arrˆets

ˆetre judicieux de limiter les d´emarrages et les arrˆets Activit´es Chaque processus est une activit´e qui
ˆetre judicieux de limiter les d´emarrages et les arrˆets Activit´es Chaque processus est une activit´e qui

Activit´es Chaque processus est une activit´e qui s’ex´ecute sur sa propre machine Dalvik Lorsqu’une application est quitt´ee par l’utilisateur elle est interrompue, mais persiste en m´emoire Moyen de r´eactivation l´eger Le gestionnaire d’activit´e d´etermine la fin effective des applications en fonction des besoins

l´eger Le gestionnaire d’activit´e d´etermine la fin effective des applications en fonction des besoins 18/40
l´eger Le gestionnaire d’activit´e d´etermine la fin effective des applications en fonction des besoins 18/40

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

Architecture en d´etails S´ecurit´e Android

Cycle de l’activit´e Android (simplifi´e)

(a), (b), (c) D´emarrage En cours Destruction (b), (c) (d) (c) (f) Arrˆet´e Pause (e)
(a), (b), (c)
D´emarrage
En cours
Destruction
(b), (c)
(d)
(c)
(f)
Arrˆet´e
Pause
(e)
Destruction (b), (c) (d) (c) (f) Arrˆet´e Pause (e) M´ethodes sp´ecifiques Il est possible d’´ecrire les

M´ethodes sp´ecifiques Il est possible d’´ecrire les m´ethodes suivantes :

(a)onCreate(), (b)onStart(), (c)onResume(), (d)onPause(), (e)onStop(), (f)onDestroy()

suivantes : (a) onCreate() , (b) onStart() , (c) onResume() , (d) onPause() , (e) onStop()

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

Architecture en d´etails S´ecurit´e Android

Activit´es : permissions

en d´etails S´ecurit´e Android Activit´es : permissions Permissions Acc´eder `a de nombreuses fonctions est soumis

Permissions Acc´eder `a de nombreuses fonctions est soumis `a permissions Elles sont v´erifi´ees par la machine Dalvik (Les autorisations sont donn´ees `a l’installation de l’application)

sont donn´ees `a l’installation de l’application) Important Chaque application d´etermine un ensemble de
sont donn´ees `a l’installation de l’application) Important Chaque application d´etermine un ensemble de

Important Chaque application d´etermine un ensemble de permissions L’utilisateur choisi d’installer l’application ou pas L’utilisateur ne peut pas installer l’application et restreindre ses permissions (par d´efaut)

ou pas L’utilisateur ne peut pas installer l’application et restreindre ses permissions (par d´efaut) 20/40
ou pas L’utilisateur ne peut pas installer l’application et restreindre ses permissions (par d´efaut) 20/40

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

Architecture en d´etails S´ecurit´e Android

Syst`eme de messages : intent

S´ecurit´e Android Syst`eme de messages : intent D´efinition des intent Les activit´es peuvent

D´efinition des intent Les activit´es peuvent communiquer entre elles `a l’aide de messages, les intents

entre elles `a l’aide de messages, les intents Exemple Intent : Ouverture de page web →

Exemple

Intent : Ouverture de page web navigateur Intent : Ouverture d’une vid´eo dans une page web activit´e vid´eo

Une activit´e peut employer un intent pr´ecis (visant une activit´e particuli`ere) Ou bien un intent g´en´eral o`u toute activit´e prenant en charge cet intent peut r´epondre (au choix de l’utilisateur)

intent g´en´eral o`u toute activit´e prenant en charge cet intent peut r´epondre (au choix de l’utilisateur)

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

Architecture en d´etails S´ecurit´e Android

Activit´es de fond : services

S´ecurit´e Android Activit´es de fond : services D´efinition Les services sont des activit´es sans

D´efinition Les services sont des activit´es sans interfaces Ils sont plus l´egers et poss`edent moins d’´etats En principe le syst`eme ne doit pas interrompre un service

En principe le syst`eme ne doit pas interrompre un service Exemple Syst`emes de notification Clavier logiciel

Exemple

Syst`emes de notification Clavier logiciel Dropbox

principe le syst`eme ne doit pas interrompre un service Exemple Syst`emes de notification Clavier logiciel Dropbox

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

Architecture en d´etails S´ecurit´e Android

Activit´es de contenu : content providers

Android Activit´es de contenu : content providers D´efinition Les serveurs de contenu sont des applications

D´efinition Les serveurs de contenu sont des applications sp´ecialis´ees qui servent d’interfaces `a des bases de donn´ees (pr´esentes sur le terminal)

`a des bases de donn´ees (pr´esentes sur le terminal) M´ethodes Ces serveurs peuvent d´efinir les m´ethodes
`a des bases de donn´ees (pr´esentes sur le terminal) M´ethodes Ces serveurs peuvent d´efinir les m´ethodes

M´ethodes Ces serveurs peuvent d´efinir les m´ethodes suivantes :

insert, delete, update, query

Exemple

L’activit´e contacts est associ´ee `a un serveur de contenu qui lui donne acc`es aux contacts de l’appareil

L’activit´e contacts est associ´ee `a un serveur de contenu qui lui donne acc`es aux contacts de

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

Architecture en d´etails S´ecurit´e Android

S´ecurit´e entre applications

S´ecurit´e Android S´ecurit´e entre applications Principes Chaque application est ex´ecut´e dans son

Principes Chaque application est ex´ecut´e dans son propre processus Chaque application d´efinit un utilisateur unique (au sens Unix) Sauf d´ecision du d´eveloppeur les donn´ees d’une application ne sont accessible qu’`a elle-mˆeme

sens Unix) Sauf d´ecision du d´eveloppeur les donn´ees d’une application ne sont accessible qu’`a elle-mˆeme 24/40
sens Unix) Sauf d´ecision du d´eveloppeur les donn´ees d’une application ne sont accessible qu’`a elle-mˆeme 24/40

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

Architecture en d´etails S´ecurit´e Android

M´ecanisme de permissions

d´etails S´ecurit´e Android M´ecanisme de permissions Permissions Tout application doit exprimer pr´ecis´ement

Permissions Tout application doit exprimer pr´ecis´ement les ´el´ements de la plateforme auxquels elle souhaite avoir acc`es Ces acc`es sont r´ealis´es au travers de l’API Dalvik

Ces acc`es sont r´ealis´es au travers de l’API Dalvik Exemple Fonctions Photos Fonctions GPS Fonctions Bluetooth

Exemple

Fonctions Photos Fonctions GPS Fonctions Bluetooth

Fonction t´el´ephonie Fonctions SMS/MMS Acc`es r´eseau

Fonctions Photos Fonctions GPS Fonctions Bluetooth Fonction t´el´ephonie Fonctions SMS/MMS Acc`es r´eseau 25/40

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

D´eveloppement Android (SDK)

Trois volets (Documentation :

http://developer.android.com)

Communication – Exp´erimentation

´

Echange avec la plate-forme (adb)

´

Emulateur Android

Echange avec la plate-forme (adb) ´ Emulateur Android D´eveloppement syst`eme Outils de compilation crois´ee

D´eveloppement syst`eme Outils de compilation crois´ee Sources du syst`eme

syst`eme Outils de compilation crois´ee Sources du syst`eme D´eveloppement applicatif Outil de compilation Dalvik Ant
syst`eme Outils de compilation crois´ee Sources du syst`eme D´eveloppement applicatif Outil de compilation Dalvik Ant

D´eveloppement applicatif Outil de compilation Dalvik Ant Plugin Eclipse NDK : d´eveloppement natif (C, C++, dans une application classique

),

destin´e `a ˆetre embarqu´e

Eclipse NDK : d´eveloppement natif (C, C++, dans une application classique ), destin´e `a ˆetre embarqu´e

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

Communication – Exp´erimentation

D´eveloppement Android Communication – Exp´erimentation Communication avec l’appareil : adb L’outil adb

Communication avec l’appareil : adb L’outil adb fourni avec le SDK permet de communiquer avec l’appareil Android, par exemple

placer des donn´ees

installer une application

ex´ecuter un shell

• installer une application • ex´ecuter un shell L’´emulateur L’´emulateur permet de faire fonctionner

L’´emulateur L’´emulateur permet de faire fonctionner une image Android sur un ordinateur, par exemple, tester :

une image (rom) modifi´ee

une application

Il est possible d’´echanger avec l’´emulateur avec adb

une image (rom) modifi´ee • une application Il est possible d’´echanger avec l’´emulateur avec adb 28/40

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

D´eveloppement applicatif (Java)

D´eveloppement Android D´eveloppement applicatif (Java) Quelques principes Les applications sont guid´ees par

Quelques principes Les applications sont guid´ees par l’interface Il est possible de sp´ecifier l’interface avec un fichier XML Les applications d´efinissent un manifeste (comportant entre autre les ´el´ements de l’API dont elles ont besoin)

autre les ´el´ements de l’API dont elles ont besoin) Syst`emes de paquets apk Une fois l’application

Syst`emes de paquets apk

Une fois l’application cod´ee, elle est compil´ee et plac´ee dans un fichier apk. Il contient le code et les donn´ees de l’application

Signature (cryptographique)

Pour ˆetre install´ee une application doit ˆetre sign´ee Toute mise `a jour n´ecessite une v´erification de la signature

install´ee une application doit ˆetre sign´ee Toute mise `a jour n´ecessite une v´erification de la signature

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

Organisation d’une application

D´eveloppement Android Organisation d’une application Diff´erents dossiers Un dossier par application –

Diff´erents dossiers Un dossier par application – Contient :

Le fichier AndroidManifest.xml: d´ecrit l’application et les ´el´ements qui la compose

Dossiers :

bin/ : fichiers g´en´er´es + l’appli elle-mˆeme

libs/ : biblioth`eques tierces

res/ : ressources (icˆones, fichiers xml importants)

src/ : fichiers sources java

D’autres dossiers peuvent apparaˆıtrent mais sont moins importants

Le dossier res/

drawable/ : images/icˆones

layout/ : fichiers xml

menu/ : fichiers xml

values/ : fichiers xml

: images/icˆones • layout/ : fichiers xml • menu/ : fichiers xml • values/ : fichiers

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

Principe g´en´eraux

syst`eme D´eveloppement Android Principe g´en´eraux Principe MVC Trois blocs ind´ependants: • Mod`ele

Principe MVC Trois blocs ind´ependants:

Mod`ele (moteur)

Vue (apparence)

Contrˆoleur (connexion entre le mod`ele et la vue)

Souvent la vue et le contrˆoleur se confondent Ex. : la visualisation du bouton et le contrˆole exerc´e par le bouton = le bouton

bouton et le contrˆole exerc´e par le bouton = le bouton Utilisation des fichiers xml Les

Utilisation des fichiers xml Les fichiers xml peuvent ˆetre utilis´es pour d´efinir l’interface (vue/contrˆole) d’une application Eclipse permet de manipuler les fichiers xml de fa¸con simple

l’interface (vue/contrˆole) d’une application Eclipse permet de manipuler les fichiers xml de fa¸con simple 31/40
l’interface (vue/contrˆole) d’une application Eclipse permet de manipuler les fichiers xml de fa¸con simple 31/40

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

Fichiers xml (dans res/)

syst`eme D´eveloppement Android Fichiers xml (dans res/ ) AndroidManifest.xml Fichier principal D´efinit

AndroidManifest.xml Fichier principal D´efinit l’activit´e principale D´efinit les permissions utilis´ees

Les autres activit´es

layout/

activity main.xml: disposition de l’activit´e principale menu/ activity main.xml: menu de l’activit´e
activity
main.xml:
disposition de l’activit´e principale
menu/
activity
main.xml:
menu de l’activit´e principale
values/
strings.xml:
chaˆınes de caract`eres
Fichiers de traduction

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

Vue Eclipse : AndroidManifest.xml

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android Vue Eclipse : AndroidManifest.xml 33/40

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

Vue Eclipse : layout.xml

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android Vue Eclipse : layout.xml 34/40

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

Vue Eclipse : strings.xml

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android Vue Eclipse : strings.xml 35/40

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

Classe principale : l’activit´e

D´eveloppement Android Classe principale : l’activit´e Principe Au moins une activit´e qui h´erite de la classe

Principe Au moins une activit´e qui h´erite de la classe Activity Impl´emente au moins la m´ethode onCreate

Activity Impl´emente au moins la m´ethode onCreate Programme exemple public class MainApp extends Activity

Programme exemple

public class MainApp extends Activity { /* * A la cr´eation de l’activit´e */ public
public
class
MainApp
extends
Activity
{
/*
*
A
la
cr´eation
de
l’activit´e
*/
public
void
onCreate(Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//
choix
de
la
disposition
->
nom
du
fichier
xml
}
//
Autre
code
}
// choix de la disposition -> nom du fichier xml } // Autre code } 36/40

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

Widgets – Vues

Principe

Les ´el´ements graphiques sont les widgets (dans Android view)

(Boutons, Menu, Zone de texte,

Leur disposition est d´ecrite dans un fichier xml dans layout/

)

Programme exemple

//

La

m´ethode

findViewById

permet

d’obtenir

un

objet

d´ecrit

//

dans

un

fichier

de

disposition

(dans

layout/)

 

Button

monBouton

=

(Button)

findViewById(R.id.bouton));

TextView

txtNom

=

(TextView)

findViewById(R.id.tNom);

EditText

zoneTexte=

(EditText)

findViewById(R.id.zTexte);

zoneNom.setText("Fran¸cois");

zoneTxt.append("Texte

ajout´e");

zoneNom.setText("Fran¸cois"); zoneTxt.append("Texte ajout´e"); 37/40

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

Les auditeurs – 1

vision syst`eme D´eveloppement Android Les auditeurs – 1 Principe Pour les interactions avec l’utilisateur on

Principe Pour les interactions avec l’utilisateur on utilise un m´ecanisme d’auditeurs: listener Il sont attach´es `a des vues Ceux-ci permettent faire le lien avec le moteur de l’application

permettent faire le lien avec le moteur de l’application Programme exemple monBouton.setOnClickListener (new

Programme exemple

monBouton.setOnClickListener

(new

OnClickListener()

{//

cr´ee

une

classe

anonyme

public

void

onClick(View

v)

{

//

N´ecessaire

car

abstraite

 

//

Code

ex´ecut´e

"au

clic"

 

MonActivite.this.moteur.methode();

 

}

});

// Code ex´ecut´e "au clic"   MonActivite.this.moteur.methode();   } }); 38/40

38/40

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

Les auditeurs – 2

vision syst`eme D´eveloppement Android Les auditeurs – 2 Principe Il est ´egalement possible de manipuler les

Principe Il est ´egalement possible de manipuler les actions de toucher

est ´egalement possible de manipuler les actions de toucher Programme exemple texte.setOnTouchListener(new

Programme exemple

texte.setOnTouchListener(new OnTouchListener(){ @Override public boolean onTouch(View v, MotionEvent event) {
texte.setOnTouchListener(new
OnTouchListener(){
@Override
public
boolean
onTouch(View
v,
MotionEvent
event)
{
valx=event.getX();
valy=event.getY();
String
txtUpdate
=
"X
:
"+valx+"
Y
:
"+valy;
texte.setText(txtUpdate);
return
true;
}});
String txtUpdate = "X : "+valx+" Y : "+valy; texte.setText(txtUpdate); return true; }}); 39/40

39/40

Vue d’ensemble Architecture, vision syst`eme D´eveloppement Android

Aller plus loin ?

Documentation officielle

http://developer.android.com/ :

d´eveloppeur

Documentation pour

http://developer.android.com/reference/ :

R´ef´erence

de l’API (y compris doc sp´ecifique API Java)

Bibliographie

Learning Android (Marko Gargenta) – O’Reilly

Hackez Google Android (Fr´ed´eric Brault, 70 pages) – Eyrolles

Warescription http://commonsware.com/warescription

• Warescription http://commonsware.com/warescription Vid´eos O’Reilly :Android Open Conference

Vid´eos O’Reilly :Android Open Conference http://www.youtube.com/user/OreillyMedia/videos

Vid´eos O’Reilly :Android Open Conference http://www.youtube.com/user/OreillyMedia/videos 40/40
Vid´eos O’Reilly :Android Open Conference http://www.youtube.com/user/OreillyMedia/videos 40/40

40/40