Vous êtes sur la page 1sur 72

1

A. Présentation de la plate-forme
B. Le kit de développement Andoid en détails
 A. La plate-forme Android

Les versions de plate-forme


Une architecture autour du noyau Linux
La licence
Le marché
Android et ses concurrents

 B. Le kit de développement Android en détails

Documentation du SDK
Les exemples
Les outils de développement du SDK
 Android -> excellent outil pour le développement d’applications
mobiles.

 Les 3 points clés d’Android:

1. Innovation : intègre les dernières technologies (écran tactile,


GPS…)

2. Accessibilité :
 pas de matériel spécifique (émulateur ou mobile Android
pour les tests)
 pas de langage particulier à connaître (plate-forme réalisée
en Java)

3. Portabilité :
 Réalisé via un langage portable : Java
 Sous licence OpenSource : modification & distribution libres
Présentation de la plate-forme

 Avant l’arrivée d’Android l’iphone monopolisait le paysage des OS


pour mobile (usage, applications)

 La comparaison permanente à l’iphone(ergonomie, internet…) met en


évidence la valeur du produit

 Conséquence, coalition fin 2007 : Open Handset Alliance (47 acteurs


dont Google)

 Ne pas confondre Android avec Google


Les versions de la plate-forme
Depuis Juillet 2010, version 2.2 Froyo
Une architecture autour d’Unix

 Les différentes couches de la plate-forme Android:


 Un noyau Linux (multitâche)
 Bibliothèques (graphiques, multimédias)
 Machine virtuelle Java (Dalvik Virtual Machine)
 Framework applicatif (gestion fenêtre, de téléphonie etc.)
 Applications (navigateur web)
Une architecture autour d’Unix
La Licence et le marché

 La licence principale est Apache2 : autorise la modification et


distribution du code librement.

 Début 2009, HTC est le premier a avoir adopté la plate-forme Android,


depuis augmentation accrue des fabricants (samsung, Sony, Motorola
etc.).

 Estimation en 2010 : 50% des téléphones sont sous Android.


Les concurrents d’Android
 Iphone Os : principal concurrent
 Windows Mobile
 Symbian : Os de Nokia
 BlackBerry Os

 Avantage : raréfier les différents systèmes.


 Composition du SDK d’Android:
 API
 Exemples de code
 Documentation
 Outils (émulateurs)
 Le SDK d’Android est gratuit sur le site de Google.
 La documentation est scindée en 2 parties:
 Guide du développeur( docs/guide/index.html)
 La documentation des Api (javadoc)
 Le kit est accompagné d’exemples de code (platforms\
android-2.0\samples):
 Snake

 Les outils de développement du SDK


 Boîte à outils
 Ensemble de programmes( sqlite3)

 Le logiciel Android Développement Tools plugin


s’intègre à Eclipse proposant des interfaces et de
débogage des applications.

Dérivé du JAVA

Différents composants d’Android

Les ressources d'Android

Emulateur Eclipse

14
Une application Android est une application objet

Au final Android traduit le code Java en code c utilisable par l’OS


On a différents composants:
 Activités -> développées par l’appli

 Services -> services développés avec l’os

Fournisseurs de contenu -> création d’image, vidéo, …

Gadgets -> Module d’affichage pour le bureau de l’Android phone

Objets Intents -> diffusent des messages d’action


Réception des Intents -> fait office de Listener

Notifications -> interaction avec l’utilisateur lors des erreurs


Le plug-in d’Eclipse lance un émulateur d'un téléphone
Android, afin de tester l’application.

On peut grâce à cet émulateur surveiller le détail du processus


de l’application

Le concept d’interface

Gérer une interface

Gérer Listener

Les ressources

20
21
Interface objet Interface Xml
Object 2 TextView Xml Déclaration

23
Sous Android , toutes les actions de l’utilisateur sont
perçues comme un événement, que ce soit le clic sur
un bouton d’une interface, le maintien du clic,
l’effleurement d’un élément de l’interface.

Ces événements peuvent être interceptés par les


éléments de votre interface pour exécuter des actions
en conséquence.

L’interaction des événements est gérée grâce à la


classe Intent
24
25
Les différents Tags XML
<use-permission>
On choisit les ressources que l’on va utiliser
<activity>
Affiche les différents objets à afficher
<services>
Lance les tâches de fond de l’application

<receiver>
Gère les interactions avec les autres applications
Se sert de la Class Intent

26
• Interface avancée
• Les fonctions importantes
• La classe Intent

27
Création de Ressources

28
Les fonctions indispensables pour programmer
Void oncreate (Bundle savedInstanteStated)

Void ondestroy ()

Void onStart ()

Void onStop ()

Void onRestart ()

Void onSaveInstanteSave ((Bundle savedInstanteStated)

29
La class Intent permet à l’application de
communiquer avec une autre application mais aussi
le système.

On peut agir de deux façons avec un objet intent:

en mode explicite

en mode implicite

30
A. Persistance des données
B. Partage des données
C. Exemple de technique : la géolocalisation
 En quoi cela consiste?

 Une application doit pouvoir :


 Garder une trace des interactions avec l’utilisateur
 Conserver des données d’une session à une autre

 Les moyens :

 Quatre techniques sont à disposition du développeur pour la persistance des données,


chacune offrant un compromis entre 3 points importants :
 Facilité de mise en œuvre
 Rapidité
 Flexibilité
 Les 4 techniques sont les suivantes :

 Persistance des activités


 Mécanisme de préférences partagées
 Système de fichiers
 Base de données SQLite

 Chaque technique possède des caractéristiques et des


usages propres. C’est au développeur de choisir celle qui
lui semble la plus adaptée au contexte de son
application!
 Persistance des activités :

 Principe :
 Enregistrer le parcours de l’utilisateur dans l’application (écrans rencontrés et leur
contexte)
 On parle de « persistance des activités » car un écran est lié à une activité

 Comment faire ?
 1ère méthode = gérer la persistance grâce aux méthodes du cycle de vie de l’activité
(onCreate, onSaveInstanceState, onRestoreInstanceState…)
 2ème méthode = gérer la persistance manuellement grâce aux classes de persistances
de l’API
 Préférences partagées :

 Principe :
 Enregistrer les valeurs propres à l’application (paramètre de l’utilisateur,
configuration de l’application…) sous forme d’un ensemble de paires clé/valeur
 Autoriser un accès partagé à ces informations à travers les différents composants de
l’application

 Comment faire ?
 On récupère les préférences d’une activité en cours via un appel à la méthode
getPreferences
 Cette méthode renvoie un objet de type SharedPreferences à partir duquel on pourra
extraire les valeurs de l’application
 Système de fichiers :

 Principe :
 Le fichier = élément de base d’Android pour stocker tout type de données
(applications, ressources, bases de données…)

 Comment faire ?
 Utiliser les API standards de manipulation de fichiers de l’espace de noms java.io
 En plus de cela, Android propose 2 méthodes pour simplifier la manipulation des
fichiers :
 openFileOutput (ouvrir fichier en écriture)
 openFileInput (ouvrir fichier en lecture)
 Base de données SQLite:

 Principe :
 Stocker et manipuler des données complexes et structurées
 -> très difficile, voire impossible à faire avec les autres moyens décrits précédemment

 Comment faire ?
 Android fournit un support de bases de données relationnelles au travers de SQLite
 SQLite = base de données légère, gratuite et Open Source très utilisée dans le
domaine des appareils mobiles (lecteurs mp3, lecteurs de salon…)
 Conclusion

 Nous avons vu différentes façons de stocker des données d’une application

 Chaque mécanisme possède ses avantages et inconvénients! Pour choisir le plus


approprié on peut se baser sur plusieurs critères :
 Portée de l’accès aux données
 Difficulté/délai d’implémentation
 Structuration ou non des données, rapidité en lecture
 Nécessité ou non de devoir effectuer des requêtes sur ces données

 La nécessité de partager et d’exposer les données aux autres applications sera aussi un
critère important pour le choix de stockage
 Pourquoi est-ce important ?

 Aujourd’hui grâce à l’Internet :


 Circulation rapide de l’information
 Information reprise et exploitée par de très nombreuses sources

 Cas d’une application


 Objectif :
 Devenir un centre d’intérêt pour l’utilisateur
 Rester incontournable (défier la concurrence, avoir le moins de restrictions possible…)
 Moyen :
 Le partage de données et ce qu’il permet : échange entre applications, extension
d’applications…
 Comment faire avec Android ?

 Utiliser les Fournisseurs de Contenu :


 Excellent moyen pour diffuser de l’information
 Interface standard d’échange

 Exploiter les dossiers dynamiques (Live Folders) :


 Permettent de visualiser les informations des Fournisseurs de Contenu (sans même
démarrer l’application)
 Interface directement accessible depuis le bureau
 Les Fournisseurs de Contenu :

 Qu’est - ce ?
 C’est un mécanisme prévu par la plate-forme Android pour faire une scission claire
entre une application et les données qu’elle manipule

Autrement dit : un Fournisseur de Contenu fournit une abstraction de l’accès aux


données d’une application !

 Principe :
 Exposer les données d’une application en lecture et/ou écriture via une interface
générique
 Les Fournisseurs de Contenu :

 But :
 Rendre une application accessible et extensible
 S’abstraire de l’accès aux données de l’application
 ne pas avoir à manipuler des données complexes et structurées d’une base de
données
 S’abstraire de la notion de « propriété » :
 données disponibles que l’application soit créée par soi-même ou des tiers
 Les dossiers dynamiques (Live Folders) :

 Qu’est - ce ?
 C’est un autre mécanisme d’accès aux données introduit avec Android 1.5

 Principe :
 Permettre aux utilisateurs de visualiser les informations d’une application
directement sur leur Bureau sans avoir à exécuter l’application

 Autrement dit : c’est tout simplement une vue en temps réel des données exposées
par un Fournisseur de Contenu
 Les dossiers dynamiques
(Live Folders) :

 Illustration :
 Conclusion
 Ce qu’il faut retenir :
 Les différents mécanismes d’accès aux données permettent d’exposer les données de
vos applications en dehors de celles-ci
 Très important pour communiquer avec des composants d’une application ou des
applications tierces
 Tout cela sert à donner une « ouverture » importante à l’application et la rendre de ce
fait attractive
Les services de géolocalisation d’Android sont divisés en deux grandes parties :

-Les API qui gèrent les plans

--Les API qui gèrent la localisation à proprement parler


 Problèmes :
 - tous les appareils ne disposent pas du même matériel de géolocalisation
(ex: pas de récepteur GPS)

 - les conditions d’utilisation du téléphone peuvent rendre inutilisable une


méthode de géolocalisation.

 Solutions
 plusieurs moyens de localisation au travers d’une liste de fournisseurs de
positions : selon les conditions, Android se chargera de sélectionner le plus apte
à donner la position de l’appareil.
Deux types de fournisseurs naturels :

 Le fournisseur basé sur la technologie GPS, de type


LocationManager.GPS_PROVIDER

 Le fournisseur qui se repère grâce aux antennes des opérateurs mobiles


et aux points d’accès Wi-Fi, de type
LocationManager.NETWORK_PROVIDER
 Exemple de code: où suis-je?

déterminer la position courante de


l’appareil à l’aide du Location Provider GPS.

Seulement 2 étapes :
- Déclarer le fournisseur de position à utiliser
- Récupérer la dernière position connue
 Détecter le changement de position

Problèmes :
- Recevoir des mises à jour de sa position et détecter le mouvement.

Solutions :
LocationManager.requestLocationUpdates(fournisseur, temps,
distance, locationListener)
 Géocodage

Permet de déterminer des coordonnées en latitude et longitude à partir


d’une adresse ou d’une description d’un endroit.

 Géodécodage

A l’inverse le géodécodage retrouvera une situation géographique en


fonction des coordonnées choisies.

Ces fonctionnalités sont liées a l’API Google.


Exemple d’utilisation du géodécodage
La manipulation d’adresse ou de lieux, que
ce soit pour un affichage ou une saisie, peut
se faire via des affichages textes ou des
formulaires mais l’utilisateur est habitué à
tout visualiser sur des cartes.

Pour réaliser des applications utilisant ces


vues à base de cartes on peut utiliser les
différentes classes suivantes :
-MapActivity : classe de base à étendre pour créer une activité qui contiendra une carte

-MapView: une vue affichant les cartes sous forme de tuiles


-MapController : qui permet de contrôler la carte(centrage ,niveau de zoom, etc.)
Résultat :
59
•Qu’est ce que l’Android Market ?

•Comment publier des applications


sur l’Android Market ?

60
•Qu’est ce que l’Android
Market ?

61
Qu’est ce que l’Android Market ?
L'Android Market est une boutique en ligne,

Site Web

android.com/market

applications entre les « meilleures » (Featured), « Meilleures


Payantes » (Top Paid) et « Meilleures gratuites » (Top Free)
22 octobre 2008. 62
Qu’est ce que l’Android Market ?

Prix des applications et achats :

Les développeurs => 70 %

Google => 30 %.

Redistributions aux développeurs via Google Checkout.

63
Qu’est ce que l’Android Market ?

Comparaison avec les


autres boutiques en ligne

64
•Comment publier des
applications sur l’Android
Market ?

65
En ligne de commande je me positionne dans nom répertoire où se
trouve l’utilitaire généralement.

C:\Program Files\Java\jre1.6.0_07\bin

Dans ce répertoire j’utilise l’utilitaire keytool.exe les paramètres sont:

-genkey génération de la clé (privé et public)


-v
-keystore <du nom de la clé chemin complet de la sauvegarde>
-alias <alias de la clé>
-keyalg <alg type d’algorithme DSA ou RSA>
-validity <nombre de jours>

exemple de

keytool -genkey -v -keystore c:/monrepertoire /my-release-


key.keystore -alias alias_name -keyalg RSA -validity 10000
66
67
68
69
70
Creation d’un
HelloWorld multiColor

71
Merci de nous avoir écoutés

Avez-vous des questions ?

72

Vous aimerez peut-être aussi