72
1

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

Embed Size (px)

Citation preview

Page 1: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

1

Page 2: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

A. Présentation de la plate-formeB. Le kit de développement Andoid en

détails

Page 3: 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-formeUne architecture autour du noyau LinuxLa licenceLe marchéAndroid et ses concurrents

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

Documentation du SDKLes exemplesLes outils de développement du SDK

Page 4: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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

Page 5: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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

Présentation de la plate-forme

Page 6: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

Depuis Juillet 2010, version 2.2 Froyo

Les versions de la plate-forme

Page 7: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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

Page 8: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

Une architecture autour d’Unix

Page 9: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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.

La Licence et le marché

Page 10: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

Iphone Os : principal concurrent Windows Mobile Symbian : Os de Nokia BlackBerry Os

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

Les concurrents d’Android

Page 11: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

Composition du SDK d’Android:APIExemples de codeDocumentationOutils (é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)

Page 12: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

Le kit est accompagné d’exemples de code (platforms\android-2.0\samples): Snake

Les outils de développement du SDKBoîte à outilsEnsemble de programmes( sqlite3)

Le logiciel Android Développement Tools plugin s’intègre à Eclipse proposant des interfaces et de débogage des applications.

Page 13: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails
Page 14: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

Dérivé du JAVA Différents composant de Android Les ressources d'Android Emulateur Eclipse

14

Page 15: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

Une application Android est une application objet

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

Page 16: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

On à différents composants:On à différents composants:

Activites -> développer par l’appli

Services -> services développer avec l’os

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

Gadgets -> Module d’affichage pour le bureau du Android phone

Objets Intent -> diffusent des messages d’actions Réceptions des intents -> fait office de Listener

Notifications -> interaction avec l’utilisateur lors de divers erreurs

Page 17: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails
Page 18: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails
Page 19: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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étails du processus de l’application

Page 20: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

Le concept d’interface Gérer une interface Gérer Listener Les ressources

20

Page 21: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

21

Page 22: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

Interface objet Interface objet Interface Xml Interface Xml

Page 23: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

Object 2 TextView Xml Déclaration

23

Page 24: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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é grâce à la classe Intent 24

Page 25: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

25

Page 26: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

26

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 applicationSe sert de la Class Intent

Page 27: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

• Interface avancée• Les fonctions

importantes• La classe Intent

27

Page 28: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

28

Création de Ressource

Page 29: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

29

Les fonctions indispensables pour programmer

Void oncreate (Bundle savedInstanteStated)

Void ondestroy ()

Void onStart ()

Void onStop ()

Void onRestart ()

Void onSaveInstanteSave ((Bundle savedInstanteStated)

Page 30: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

30

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

Page 31: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails
Page 32: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

A. Persistance des donnéesB. Partage des donnéesC. Exemple de technique : la

géolocalisation

Page 33: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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é

Page 34: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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!

Page 35: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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

Page 36: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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

Page 37: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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)

Page 38: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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…)

Page 39: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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

Page 40: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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…

Page 41: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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

Page 42: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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

Page 43: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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

Page 44: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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

Page 45: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

Les dossiers dynamiques (Live Folders) :

Illustration :

Page 46: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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

Page 47: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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

Page 48: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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.

Page 49: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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

Page 50: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

Exemple de code: où suis-je?

déterminer la position courante del’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

Page 51: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails
Page 52: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails
Page 53: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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)

Page 54: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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.

Page 55: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

Exemple d’utilisation du géodécodage

Page 56: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

La manipulation d’adresse ou de lieux, quece 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.)

Page 57: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails
Page 58: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

Résultat :

Page 59: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

59

Page 60: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

•Qu’est ce que l’Android Market ?

•Comment publier des applications sur l’Android Market ?

60

Page 61: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

•Qu’est ce que l’Android Market ?

61

Page 62: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

Qu’est ce que l’Android Market ?

L'Android Market est une boutique en ligne,

applications entre les « meilleures » (Featured), « Meilleures Payantes » (Top Paid) et « Meilleures gratuites » (Top Free) 22 octobre 2008.

Site Web

android.com/market

62

Page 63: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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

Page 64: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

Qu’est ce que l’Android Market ?

Comparaison avec les autres boutiques en ligne

64

Page 65: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

•Comment publier des applications sur l’Android Market ?

65

Page 66: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

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és (privé et public)-v-keystore <du nom de la clés chemin complet de la sauvegarde>-alias <alias de la clés>-keyalg <alg type de 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

Page 67: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

67

Page 68: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

68

Page 69: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

69

Page 70: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

70

Page 71: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

Creation d’un HelloWorld multiColor

71

Page 72: 1. A.Présentation de la plate-forme B.Le kit de développement Andoid en détails

Merci de nous avoir écoutés

72

Avez-vous des Avez-vous des questions ?questions ?