Professional Documents
Culture Documents
Emulateur Android
Developpement syst`eme
Outils de compilation croisee
Sources du syst`eme
Developpement applicatif
Outil de compilation Dalvik Ant
Plugin Eclipse
NDK : developpement natif (C, C++, ...), destine `a etre embarque
dans une application classique
27/40
Vue densemble
Architecture, vision syst`eme
Developpement Android
Communication Experimentation
Communication avec lappareil : adb
Loutil adb fourni avec le SDK permet de communiquer avec
lappareil Android, par exemple
placer des donnees
installer une application
executer un shell
Lemulateur
Lemulateur permet de faire fonctionner une image Android sur un
ordinateur, par exemple, tester :
une image (rom) modiee
une application
Il est possible dechanger avec lemulateur avec adb
28/40
Vue densemble
Architecture, vision syst`eme
Developpement Android
Developpement applicatif (Java)
Quelques principes
Les applications sont guidees par linterface
Il est possible de specier linterface avec un chier XML
Les applications denissent un manifeste (comportant entre autre
les elements de lAPI dont elles ont besoin)
Syst`emes de paquets apk
Une fois lapplication codee, elle est compilee et placee dans un
chier apk. Il contient le code et les donnees de lapplication
Signature (cryptographique)
Pour etre installee une application doit etre signee
Toute mise `a jour necessite une verication de la signature
29/40
Vue densemble
Architecture, vision syst`eme
Developpement Android
Organisation dune application
Dierents dossiers
Un dossier par application Contient :
Le chier AndroidManifest.xml: decrit lapplication et les
elements qui la compose
Dossiers :
bin/ : chiers generes + lappli elle-meme
libs/ : biblioth`eques tierces
res/ : ressources (icones, chiers xml importants)
src/ : chiers sources java
Dautres dossiers peuvent apparatrent mais sont moins importants
Le dossier res/
drawable/ : images/icones
layout/ : chiers xml
menu/ : chiers xml
values/ : chiers xml
30/40
Vue densemble
Architecture, vision syst`eme
Developpement Android
Principe generaux
Principe MVC
Trois blocs independants:
Mod`ele (moteur)
Vue (apparence)
Controleur (connexion entre le mod`ele et la vue)
Souvent la vue et le controleur se confondent
Ex. : la visualisation du bouton et le controle exerce par le bouton
= le bouton
Utilisation des chiers xml
Les chiers xml peuvent etre utilises pour denir linterface
(vue/controle) dune application
Eclipse permet de manipuler les chiers xml de fa con simple
31/40
Vue densemble
Architecture, vision syst`eme
Developpement Android
Fichiers xml (dans res/)
AndroidManifest.xml
Fichier principal
Denit lactivite principale Les autres activites
Denit les permissions utilisees
layout/
activity main.xml: disposition de lactivite principale
menu/
activity main.xml: menu de lactivite principale
values/
strings.xml: chanes de caract`eres
Fichiers de traduction
32/40
Vue densemble
Architecture, vision syst`eme
Developpement Android
Vue Eclipse : AndroidManifest.xml
33/40
Vue densemble
Architecture, vision syst`eme
Developpement Android
Vue Eclipse : layout.xml
34/40
Vue densemble
Architecture, vision syst`eme
Developpement Android
Vue Eclipse : strings.xml
35/40
Vue densemble
Architecture, vision syst`eme
Developpement Android
Classe principale : lactivite
Principe
Au moins une activite qui herite de la classe Activity
Implemente au moins la methode onCreate
Programme exemple
public class MainApp extends Activity {
/*
* A la creation de lactivite
*/
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// choix de la disposition -> nom du fichier xml
}
// Autre code...
}
36/40
Vue densemble
Architecture, vision syst`eme
Developpement Android
Widgets Vues
Principe
Les elements graphiques sont les widgets (dans Android view)
(Boutons, Menu, Zone de texte, ...)
Leur disposition est decrite dans un chier xml dans layout/
Programme exemple
// La methode findViewById permet dobtenir un objet decrit
// 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("Francois");
zoneTxt.append("Texte ajoute");
37/40
Vue densemble
Architecture, vision syst`eme
Developpement Android
Les auditeurs 1
Principe
Pour les interactions avec lutilisateur on utilise un mecanisme
dauditeurs: listener
Il sont attaches `a des vues
Ceux-ci permettent faire le lien avec le moteur de lapplication
Programme exemple
monBouton.setOnClickListener
(new OnClickListener() {// cree une classe anonyme
public void onClick(View v) {
// Necessaire car abstraite
// Code execute "au clic"
MonActivite.this.moteur.methode();
}
});
38/40
Vue densemble
Architecture, vision syst`eme
Developpement Android
Les auditeurs 2
Principe
Il est egalement possible de manipuler les actions de toucher
Programme exemple
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;
}});
39/40
Vue densemble
Architecture, vision syst`eme
Developpement Android
Aller plus loin ?
Documentation ocielle
http://developer.android.com/ : Documentation pour
developpeur
http://developer.android.com/reference/ : Reference
de lAPI (y compris doc specique API Java)
Bibliographie
Learning Android (Marko Gargenta) OReilly
Hackez Google Android (Frederic Brault, 70 pages) Eyrolles
Warescription http://commonsware.com/warescription
Videos
OReilly :Android Open Conference
http://www.youtube.com/user/OreillyMedia/videos
40/40