You are on page 1of 6

Dveloppement de Systmes Informatiques

Dveloppement de Systmes Informatiques


cole des Mines de Saint-tienne - Axe ISI

Introduction la programmation avec Android


Table des matires
q

q q

1 Introduction r 1.1 Prsentation succinte r 1.2 Motivation du cours r 1.3 Quel environnement de programmation ? 2 Prise en main d'Android avec le tutoriel officiel 3 Ecrire sa premire application Android r 3.1 Exercice r 3.2 Rfrences 4 Accs et gestion de bases de donnes locales r 4.1 Exercice r 4.2 Rfrences 5 Prendre des photos r 5.1 Exercice r 5.2 Rfrences 6 Accs aux services de localisation r 6.1 Exercice r 6.2 Rfrences 7 Cartographie avec GoogleMaps ou OpenStreetMap r 7.1 Exercice r 7.2 Rfrences 8 Accs aux capteurs r 8.1 Exercice r 8.2 Rfrences

1 Introduction
1.1 Prsentation succinte
Android est dveloppe depuis 2007 par Google aprs le rachat d'une startup du mme nom. Base sur un noyau Linux, Android est une plateforme libre sous licence GNU GPL2. La dernire version en date est la version 4.1 nomme Jelly Bean. Les mises jours sont frquentes (2 fois par an). Android est une plateforme de dveloppement l'origine conue pour des terminaux mobiles, mais
http://www.emse.fr/~picard/cours/2A/devsi/android.html (1 sur 6)24/07/2013 21:45:11

Dveloppement de Systmes Informatiques

qui aujourd'hui largit son march, avec notamment des tlviseurs ou des consoles de salons (non mobiles). Elle est aujourd'hui la premire plateforme mobile en terme de nombre de terminaux vendus. Le dveloppement d'applications sous Android s'effectue principalement sous Java (applications, logique mtier) et XML (pour les interfaces). Il est galement possible de dvelopper en C, mais en se passant de l'interface spcifique Java (d'o un travail de portabilit plus important).

1.2 Motivation du cours


Nous nous intressons aujourd'hui la plateforme Android, car de nombreuses entreprises ont recours aux plateformes mobiles pour dvelopper des applications mtiers ddies l'usage interne l'entreprise, ou l'accs ses services par les clients. Les terminaux mobiles ont remplac les anciens terminaux fixes pour de nombreux usages, mme dans le cadre professionnel, surtout depuis l'arrive massive des tablettes tactiles. Android n'est bien sr pas la seule plateforme de dveloppement pour terminaux mobiles. Nous pouvons citer notamment iOS de chez Apple, et Windows Phone de chez Microsoft. Cependant, la licence GPL ainsi que les outils gratuits mis disposition des dveloppeurs Android nous a orients vers ce choix.

1.3 Quel environnement de programmation ?


Vous tes libres d'utiliser l'diteur/environnement de programmation de votre choix. Il faut au pralable avoir le kit de dveloppement Android (qui contient notamment un mulateur de terminaux). Cependant, le dveloppement sous Eclipse est fortement conseill, avec le plugin ADT.

2 Prise en main d'Android avec le tutoriel officiel


La meilleure faon de prendre en main Android est de suivre son tutoriel officiel : http://developer. android.com/training/basics/firstapp/index.html. Bien que ne couvrant pas tous les aspects du dveloppement sous Android, il permet de mettre un premier pied l'trier. Ce ne sera certainement pas suffisant, pour vos besoins, c'est cela que nous aborderons d'autres aspects dans la suite du TP. Pour aller plus loin dans la dcouverte du langage, vous pouvez consulter les sources suivantes :
q

q q q q

la documentation officielle de l'API Android : http://developer.android.com/reference/ packages.html les guides officiels dcrivant tous les lments de l'API : http://developer.android.com/guide/ components/index.html un cours en franais : http://romain.raveaux.free.fr/document/Android/androidcours.pdf une fiche synthtique bien pratique : http://rgruet.free.fr/PQR27/PQR2.7.html vous pouvez galement consulter le support de cours. enfin, le livre l'Art du dveloppement Android de Mark Murphy est disponible la

http://www.emse.fr/~picard/cours/2A/devsi/android.html (2 sur 6)24/07/2013 21:45:11

Dveloppement de Systmes Informatiques

bibliothque (certaines parties sur les aspects avancs en sont issues).

Semi-auto-formation
Attention, contrairement ce que nous avons pu faire en LCPOO l'anne dernire, ce cours pose comme acquis votre connaissance de la programmation oriente objet avec Java. Ce cours est principalement construit autours de l'exploration du tutoriel officiel d'Android et donc sur votre capacit tre autonome dans votre tche d'apprentissage. Le charg de TP est prsent toutefois pour vous aider et rpondre toutes vos questions (pertinentes).

3 Ecrire sa premire application Android


Le tutoriel officiel propose de dvelopper une premire application : HelloWorld. Il n'est conu que pour tre dvelopp sous Eclipse avec le plugin ADT. Rendez-vous sur le tutoriel officiel Android et consultez les sections suivantes : 1. Creating an Android Project : concerne la prise en main du plugin Eclipse ADT et les lignes de commande du kit de dveloppement 2. Running Your Application : prsente l'architecture d'un projet Eclipse ADT, et comment excuter l'application sur un vrai terminal ou sur l'mulateur 3. Building a Simple User Interface : prsente l'utilisation d'XML pour dvelopper des interfaces graphiques (layout, textfield, button, etc.) 4. Starting Another Activity : illustre comment une application peut grer plusieurs activits et les lier

3.1 Exercice
Suivez le tutoriel de 1 4 et dveloppez votre premire application.

3.2 Rfrences
q

https://developer.android.com/training/basics/firstapp/index.html

Fonctionnalits facultatives
Android et la diversit des terminaux et de leurs capacits nous permettent d'envisager l'usage de trs nombreuses fonctionnalits. Le but de la suite de ce TP est de vous donner quelques pointeurs vers des fonctionnalits pouvant vous servir pour votre projet. La liste est bien entendu non exhaustive. Si vous avez d'autres besoins, le charg de TP

http://www.emse.fr/~picard/cours/2A/devsi/android.html (3 sur 6)24/07/2013 21:45:11

Dveloppement de Systmes Informatiques

est votre disposition pour vous aider.

4 Accs et gestion de bases de donnes locales


Il peut tre intressant de stocker certaines informations sur une base de donnes locales au terminal mobile (des prfrences utilisateur, par exemple). Android propose un mcanisme assez simple bas sur SQLite (un moteur de bases de donne fonctionnant sans mode serveur). L'API en charge de la gestion de bases de donnes est android.database.

4.1 Exercice
Crez une application qui enregistre en base de donnes les noms et prnoms saisis dans une fentre, puis qui les affiche en mettant en forme (majuscules, etc.) dans une autre activit.

4.2 Rfrences
q q q

L'art du dveloppement Android, p.259 https://developer.android.com/guide/topics/data/data-storage.html http://developer.android.com/reference/android/database/package-summary.html

5 Prendre des photos


Les terminaux mobiles (mme les tablettes) sont tous quip de capteurs photographiques. L'accs ces quipement se fait grce l'API android.hardware.Camera. Le sous-tutoriel Building a Camera App devrait largement couvrir vos besoins. Ensuite, pour sauver les photos, le sous-tutoriel Saving Media Files vous montrera comment accder aux divers supports de stockage.

5.1 Exercice
Crez une application capable de prendre une photo et de lui donner un nom afin de l'enregistrer sur le mobile.

5.2 Rfrences
q q

http://developer.android.com/training/camera/index.html https://developer.android.com/reference/android/hardware/Camera.html

6 Accs aux services de localisation

http://www.emse.fr/~picard/cours/2A/devsi/android.html (4 sur 6)24/07/2013 21:45:11

Dveloppement de Systmes Informatiques

La plupart des terminaux mobiles ont une puce GPS leur permettant de se localiser dans l'espace. L'accs ces informations est trs simple sous Android grce l'API android.location.

6.1 Exercice
Crez une application qui affiche la localisation actuelle aprs avoir appuy sur un bouton.

6.2 Rfrences
q q q q

http://developer.android.com/training/basics/location/index.html http://developer.android.com/reference/android/location/package-summary.html L'art du dveloppement Android, p.343 Linux Magazine Hors-srie n47

7 Cartographie avec GoogleMaps ou OpenStreetMap


Souvent lies aux services de localisation, les fonctionnalits de cartographies sous Android reposent sur des API compltes et diverses. Les principales sont GoogleMaps et OpenStreetMap. Les deux consistent en la cration de View spcifiques (MapView) permettant d'afficher des cartes de certaines tailles, certaines positions, certaines chelles, etc. Il est possible d'afficher des informations sur les cartes grce des objets Overlay. GoogleMaps possde un tutoriel trs simple et trs clair : https://developers.google.com/maps/ documentation/android/hello-mapview OpenStreetMap fonctionne suivant la mme API, et donc suivre le mme tutoriel est indispensable.

7.1 Exercice
Crez une application qui affiche sur une carte GoogleMaps ou OpenStreetMap la position actuelle du mobile.

7.2 Rfrences
q q q q q q

L'art du dveloppement Android, p.349 https://developers.google.com/maps/documentation/android/hello-mapview https://developer.android.com/guide/topics/location/index.html https://developers.google.com/maps/documentation/android/?hl=fr-FR http://code.google.com/p/osmdroid/wiki/ Linux Magazine Hors-srie n47

8 Accs aux capteurs


http://www.emse.fr/~picard/cours/2A/devsi/android.html (5 sur 6)24/07/2013 21:45:11

Dveloppement de Systmes Informatiques

Les terminaux mobiles d'aujourd'hui sont une source de donnes diverses grce aux multiples capteurs embarqus (temprature, inclinaison, GPS, etc.). L'API android.hardware.Sensor donne accs tous ces capteurs de manire unifie.

8.1 Exercice
Crez une application qui dtermine si l'utilisateur est en train de marcher, de sauter, d'tre assis ou d'tre debout grce l'accelromtre : http://developer.android.com/guide/topics/ sensors/sensors_motion.html#sensors-motion-accel

8.2 Rfrences
q q q q

http://developer.android.com/guide/topics/sensors/index.html http://developer.android.com/guide/topics/sensors/sensors_motion.html https://developer.android.com/guide/topics/sensors/sensors_overview.html https://developer.android.com/reference/android/hardware/Sensor.html

Gauthier Picard, October 2012

http://www.emse.fr/~picard/cours/2A/devsi/android.html (6 sur 6)24/07/2013 21:45:11