Escolar Documentos
Profissional Documentos
Cultura Documentos
fr/android
Android
Apprendre programmer des applis
Environnement de dveloppement Eclipse
Programmation oriente objet en JAVA
SOMMAIRE
Prface . . . . . . . . . . . . . . . . . . . . . 7
1.
Android
1.1
1.2
1.3
1.4
Histoire et dveloppement . . . . . . . . 9
Android et Linux . . . . . . . . . . . . . . 11
Projets Open Source . . . . . . . . . . . . 13
Portages dAndroid. . . . . . . . . . . . . 14
2.
Eclipse
2.1
2.2
Logiciels ncessaires . . . . . . . . . . . 15
Appareils virtuels Android . . . . . . . 17
3.
Concepts de base de la
programmation Android
3.1
3.2
3.3
3.4
4.
Interface utilisateur
dAndroid
4.1
4.2
4.3
Views et ViewGroups . . . . . . . . . . 27
Fichiers de description XML . . . . . 27
Gabarits . . . . . . . . . . . . . . . . . . . . . 29
4.3.1 LinearLayout . . . . . . . . . . . . 31
4.3.2 AbsoluteLayout . . . . . . . . . . 32
4.3.3 TableLayout . . . . . . . . . . . . . 33
www.elektor.fr/android
4.3.4 RelativeLayout . . . . . . . . . . .34
4.3.5 FrameLayout. . . . . . . . . . . . .35
4.3.6 ScrollView . . . . . . . . . . . . . .36
5.
Android et Java
5.1
5.2
5.3
5.4
6.
Applications Android
simples
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
7.
Consultation et
reprsentation des
godonnes
7.1
7.2
7.3
7.4
7.5
7.6
Godonnes . . . . . . . . . . . . . . . . . . .97
Dessiner sur lcran. . . . . . . . . . . .105
Outil GPS . . . . . . . . . . . . . . . . . . .110
Enregistrer une route GPS. . . . . . .118
Interroger les capteurs . . . . . . . . . .126
7.5.1 Acclromtre. . . . . . . . . . .126
7.5.2 Magntomtre . . . . . . . . . . .130
7.5.3 Capteur de luminosit . . . . .134
App Widgets . . . . . . . . . . . . . . . . .135
8.
Lecture multimdia
8.1
8.2
8.3
9.
9.1
9.2
9.3
9.4
9.5
9.6
11. Appendices
11.1 Application HTML . . . . . . . . . . . . 195
11.2 Rfrences. . . . . . . . . . . . . . . . . . . 202
11.2 Crdits des images . . . . . . . 202
11.2 Crdits des codes source . . 202
11.2 Ressources Web . . . . . . . . . 202
Index . . . . . . . . . . . . . . . . . . . . . . . 203
4.
4.1
Views et ViewGroups
mettent de positionner des composants graphiques), et ainsi tendre larbre de la hirarchie des vues.
Lappel dune activit dclenche laffichage des gabarits. Lactivit invoque la
mthode setContentView() en passant une rfrence au nud suprieur de larbre.
Android dmarre depuis ce nud et parcourt larbre de haut en bas en deux passes.
Dans la premire, Android demande les dimensions des objets contenus dans larborescence. La seconde passe sert au calcul de leurs positions lcran. Les objets qui
nappartiennent pas une zone afficher ne sont pas dessins. Chaque objet enfant est
ainsi responsable de sa propre reprsentation lcran.
4.2
La faon la plus simple et aussi la plus frquente de crer une interface est de la dclarer
dans un fichier XML. Ce fichier XML dfinira la structure hirarchique des lments
graphiques qui composent linterface. Cr en 1996, le XML (Extended Markup Language) est un langage qui permet de reprsenter le contenu des donnes laide de
ISBN 978-2-86661-187-3
copyright Elektor International Media
50
Figure 7 - La CalculOhmlette.
ISBN 978-2-86661-187-3
copyright Elektor International Media
ISBN 978-2-86661-187-3
copyright Elektor International Media
51
6.6 Notifications
6.6
83
Notifications
ISBN 978-2-86661-187-3
copyright Elektor International Media
104
Essayons de tester notre programme avec geo fix. Cette commande attend deux coordonnes de longitude et de latitude. Entrons par exemple :
geo fix 20 30
Les champs latitude et longitude de notre petite application GPS affichent bien 30.0
et 20.0. Comme il sagit de la premire modification de position dtecte, la mthode
onLocationChanged de lcouteur LocationListener est appele pour la premire
fois. Ce nest donc qu cet instant que les autres champs sont remplis. Date excepte,
nous ny trouvons cependant que des 0.0 puisquaucune donne na t transmise.
Lapplication voluerait bien sr diffremment avec un vrai tlphone puisque la position serait actualise toutes les minutes.
Nous pouvons de mme transmettre une phrase GPS conforme la norme NMEA
0183 utilise par les interfaces des rcepteurs GPS. Pour cela nous lanons la
commande geo nmea suivie de la trame transmettre. Nous ne pouvons toutefois pas
nous contenter dune trame contenant uniquement les donnes de latitude et de
longitude ; la saisie est quelque peu fastidieuse, moins de recourir au copier-coller
dune trame complte. Voici un exemple de commande geo nmea :
geo nmea $GPRMC,081836,A,3751.65,S,14507.36,E,000.0,360.0,130998,011.3,E*62
ISBN 978-2-86661-187-3
copyright Elektor International Media
126
Chaque point de passage est enregistr dans un lment XML <wpt>. Longitude et latitude correspondent aux valeurs des attributs lon et lat. Laltitude est quant elle
contenue dans la balise <ele> de llment <wpt>. Lensemble des coordonnes de
cette route GPS est insr dans la balise racine <gpx>. Un tel format de fichier pourra
tre lu par dautres programmes, ou encore partag sur une page Internet.
Nous pourrions de la mme faon enregistrer lun ou lautre des nombreux lments
dcrits par la spcification du format ouvert GPX. Notre exemple nen utilise quun
petit nombre, le minimum ncessaire la reprsentation dun trac sous forme dune
suite de points de passage. Nous aurions mme pu nous passer de laltitude.
7.5
Les smartphones Android sont tous quips de capteurs. Citons parmi ceux-ci : les capteurs photosensibles pour la commande de la camra, les acclromtres, les thermomtres, ou encore les magntomtres pour lenregistrement du champ magntique
terrestre. Bon nombre dapplications nexisteraient pas sans ces capteurs. La rotation
automatique de lcran, qui ncessite la connaissance de la position spatiale du tlphone, repose par exemple sur une mesure de lacclration due la pesanteur.
LAPI Android permet bien videmment dinterroger ces capteurs. Nous allons voir
qucouter leur changement dtat est trs simple, et que le modus operandi est peu ou
prou le mme pour chaque type de capteur. Les exemples suivants nen utilisent quun
seul la fois, car tous les tlphones tactiles ne sont pas forcment quips du mme
nombre de capteurs.
7.5.1
Acclromtre
Commenons par lacclromtre, prsent sur la majorit des tlphones puisque, nous
lavons dit, il est indispensable la rotation automatique de laffichage.
Lacclromtre mesure lacclration selon trois axes. Ce capteur renvoie donc les
ISBN 978-2-86661-187-3
copyright Elektor International Media
150
8. Lecture multimdia
Comme toujours les textes de description des lments TextView sont rfrencs dans
le fichier de ressources strings.xml. Crons-le et remplissons les balises string des
champs de texte prcdents :
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="level"></string>
<string name="form">Forme d\onde :</string>
<string name="sine">Sinusode</string>
<string name="square">Rectangulaire</string>
<string name="textlevel">Niveau de sortie</string>
<string name="textfrequency">Frquence</string>
<string name="frequency">Frquence (Hz)</string>
<string name="app_name">Gnrateur audio</string>
</resources>
La figure 16 montre linterface produite par ces deux fichiers : deux champs de saisie
pour la frquence et le niveau de sortie, deux champs pour laffichage des donnes en
cours et un champ de texte pour indiquer la forme donde slectionne. Nous nous
contenterons ici de deux formes donde, savoir une sinusode et une onde rectangulaire. Dans main.xml, les attributs android:text des champs Frquence et Niveau de
sortie ont pour valeurs -- . Ces champs contiendront donc par dfaut deux tirets
lorsquaucune valeur naura encore t saisie.
ISBN 978-2-86661-187-3
copyright Elektor International Media
165
9.1.2
Google Maps
ISBN 978-2-86661-187-3
copyright Elektor International Media