55
PRÉSENTATION DE LA PLATEFORME ANDROID

Découvrir la plateforme Android La plateforme Android L'architecture Android Les outils de développement : installation Une première application

Embed Size (px)

Citation preview

Page 1: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

PRÉSENTATION DE LAPLATEFORME

ANDROID

Page 2: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Chapitre 1

Découvrir la plateforme Android

Page 3: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Plan du chapitre 1

La plateforme Android L'architecture Android Les outils de développement : installation Une première application

Page 4: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

La plateforme Android

Android= un système d’exploitation open source pour smartphones,PDA,Tablettes :systemes légers

Une startup racheté par Google en 2005 5 Novembre 2007, création de l’OHA (Open handset

Alliance)= un consortium créé à l’initiative de Google réunissant des entreprises opérateurs mobiles, constructeurs et éditeurs logiciels

But de l’OHA:favoriser l’ innovation sur les appareils mobiles en fournissant une plateforme véritablement ouverte et complète.

Est gratuit Logo bugdroid (peut être utilisé librement) Noyau linux (branche du noyau 2.6, maintenant 3.3) Site de référence :http://developer.android.com

Page 5: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Android et Google

A suscité l'engouement des développeurs grâce à deux Android Developer(L'Android Developer Challenge (ADC) a été lancé par Google en 2008, dans le but de l'octroi de bourses pour des applications Android de qualité.

Conçu pour intégrer les applications Google : Gmail, Google Maps, Google Agenda, YouTube et la géolocalisation

Les différentes versions ont des noms de dessert (qui suivent l'ordre alphabétique, de A à Z) qui sont sculptés et affichés devant le siège social de Google (Mountain View)

Page 6: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Siege social de Google (mountain View)

Page 7: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Les différentes versions 1.0 : Version connue des développeurs : sortie avant le premier

téléphone Android (fin 2007) 1.1 : Version incluse dans le premier téléphone, le HTC Dream 1.5 : Cupcake (Petit Gâteau), sortie en avril 2009 1.6 : Donut (Beignet), sortie en septembre 2009 2.0 (2.0.1) : A cause de nombreux bugs, remplacée par la la 2.1 2.1 : Eclair, sortie en janvier 2010 2.2 : FroYo (Frozen Yogourt : Yaourt glacé), sortie en mai 2010 2.3 : Gingerbread (Pain d'épice), sortie le 6 décembre 2010, version

actuelle pour smartphones et petites tablettes ; 3.0 : Honeycomb10 (Rayon de miel), sortie le 26 janvier 2011, version

actuelle pour grandes tablettes; 4.0 : Ice Cream Sandwich12 (Sandwich à la crème glacée), version

unifiée pour Smartphone,Tablette et GoogleTV13, combinant Gingerbread et Honeycomb, sortie le 19 octobre 2011

4.1 -4.3:Jelly Bean n basée sur le noyau Linux 3.0.31 et dont la principale nouveauté est une amélioration des fonctionnalités et des performances de l'interface utilisateur.

4.4: KitKat

Page 8: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Parts de chaque versionfin 2013

Versions des machines Android qui ont accédé à Google Play (exAndroid Market) deux semaines avant le 2 décembre 2013

Page 9: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Smartphone != ordinateur

Android tire partie des particularités des smartphones : interface homme machine adapté (tactile, widget) divers modes : vibreur, sonnerie, silencieux, alarme notifications (d'applications, d'emails, de SMS, d'appels en

instance)de boussole, accéléromètre, GPS divers capteurs (gyroscope, gravité, accéléromètre, baromètre) NFC, RFID téléphonie (GSM) et réseau EDGE, 3G, 4G En plus de ce qu'on peut avoir sur un ordinateur : navigateur,

bibliothèques graphiques 2D, 3D (Open GL), base de données (SQLite), applications de rendu multimédia (audio, vidéo, image) de divers formats, réseau Bluetooth et Wi-Fi, caméra

Page 10: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Le Google Play (AndroidMarket)

Google Play, est une boutique en ligne créée par Google (le 6 mars 2012) par fusion des services Android Market et d'autres services Google (location de films, achat de musique, etc.).

Elle permet de télécharger et d'installer de nouvelles applications ("apps") dans le smartphone

Android market est "né" le 22 octobre 2008 "Au 1 Janvier 2013, Google Play est fort de 800 000 applications

ce qui le met à égalité avec iOS Les développeurs d'applications payantes reçoivent 70 % du prix

du logiciel, 30% allant à Google (redistribués aux développeurs via Google Checkout)

Google Checkout (Google Wallet) est un service de paiement sur Internet qui permet à l'utilisateur d’envoyer et de recevoir ses paiements par Internet, sans avoir à communiquer ses coordonnées de carte bancaire lors de ses transactions. Ce service a été créé par Google, en janvier 2006, à la suite du lancement de Google Video Store, service d'achat de contenus vidéo en ligne.

Chaque nouveau développeur paie $25 comme frais de dossier (une seule fois)

Page 11: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Le SDK Android

l'Android SDK (Software Development Kit) amène des outils : un environnement de développement une machine virtuelle Java adaptée : la Dalvik virtual machine un environnement debugueur DDMS (Dalvik Debug Monitor

Service) utilisant adb (Android Debug Bridge) un environnement de construction d'application Android aapt

(Android Asset Packaging Tool, ajout suppression fichiers, packages au sein du APK file)

des émulateurs de téléphones ou de tablettes AVD (Android Virtual Device) et une énorme API (voir à

http://developer.android.com/reference/packages.html)

Page 12: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Architecture Android Toutes les modifications apportées par Google (par rapport  à un

système Linux classique) ont été faites dans un seul but : créer un système le plus léger possible tout en ayant un maximum de fonctionnalités.

léger = système embarqué Un système dit « embarqué » est un système dont les ressources

matérielles disponibles sont relativement faibles. Mis à part les derniers smartphones qui sont presque aussi puissants que certains ordinateurs.

Android a été créé pour fonctionner sur des petites machines. Par exemple, un téléphone possédant les caractéristiques suivantes :

- Un processeur de 250 MHz ;- Une mémoire RAM de 64 Mo ;- Pas d’espace de swap (fichier d’échange) ;- Une faible résolution d’écrans (320x240 pixels). Bien sûr, tous les constructeurs proposent des « configurations » bien

plus élevées que celle ci-dessus. 

Page 13: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Architecture Android

L’architecture d’Android peut se découper en cinq parties:

Le noyau les bibliothèques un environnement d’exécution(DVM) un framework les applications

Page 14: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Architecture Android –Le Noyau

Android utilise un noyau Linux 2.6 (3.0 pour les dernières versions) modifié. 

IL dispose d’une couche d’abstration pour accéder à ces périphériques: caméra,audio, video, keyboard..

Le noyau a subit des changements importants depuis ces débuts.Un des changements fondamentaux est le remplacement des IPC SysV. C’est un module qui permet les communications inter-processus. Ce module se voit remplacé par Binder, qui a été initialement développé pour BeOS. Binder est plus économique en ressources système, tout en assurant les mêmes fonctions.

Une autre modification importante concerne la gestion de la mémoire, nommée Ashmem (Android shared memory). C’est un sous-système proche de Shared Memory (SHM) défini par la norme POSIX, mais qui dispose d’une API plus simple. Le but de ce sous-système est de déléguer une partie de la gestion de la mémoire à l’utilisateur. De ce fait, la mémoire peut être partagée entre les processus en passant par Binder.

Page 15: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Architecture Android –Le Noyau

Système embarqué oblige, l’accès aux journaux système (logs) ne peut se faire comme sur un système classique. Google a donc intégré un logger dans le noyau. Celui-ci permet d’effectuer une surveillance via la commande logcat. Il est aussi possible de détourner le stdout et / ou le stderr des processus vers le journal système. Cela peut être très utile pour le développement d’applications. Pendant les phases de test sur le terminal, nous avons un accès en temps réel aux logs de l’application.

Google a également implémenté OOM (Out Of Memory).  C’est une sorte de gestionnaire de tâches, il est aussi appelé Viking Killer. Il a pour rôle de tuer les tâches lorsque la mémoire vient à manquer. Les tâches à tuer sont définies par des quotas de mémoire suivant les classes de processus.

Ces modifications sont les principales effectuées, mais il y en a encore beaucoup d’autres, comme la gestion de la mise en veille, de l’alarme, la sécurisation de l’accès aux ressources réseau ou encore la fonction printk permettant de loguer en RAM les GPIO ou ADB pour l’USB.

Page 16: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Architecture Android –Le Noyau

Noyau modifié écrit essentiellement en C et en assembleur

Page 17: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Architecture Android Les Bibliotheques

Android possède de nombreuses bibliothèques natives (comparables au DLL sous Windows). Elles fournissent un accès direct aux ressources du système et forment une couche d’abstraction permettant le fonctionnement du framework d’Android. C’est en quelque sorte la « base » de l’ensemble du système au niveau supérieur.

Ces bibliothèques sont codées en C/C++. Le NDK (Native Developpement Kit) est un outil complémentaire du

SDK qui permet de construire des portions critiques  du code afin de mieux gérer les performances de votre application.

Il utilise le JNI (Java Native Interface) pour interfacer du code écrit en C/C++ avec du code écrit en Java, il fournit  des entêtes natives et des  bibliothèques  qui vous permettent de travailler de plus en plus proches de la plateforme matériel ainsi de gérer le/les entres utilisateur, créer de activités…

Le C/C++ est un code compilé (contrairement au Java Interprété)  il sera traduit par le compilateur en instructions machine qui seront directement exécutées par le processeur d’où l’intérêt du code native.

Page 18: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Architecture Android Les Bibliotheques

Les autres bibliothèques sont moins importantes. Google en a implémenté certaines comme:

SQLite :base de donnée FreeType :moteur de rendu des polices de caract. Webkit :moteur de rendu HTML(utilisé aussi par les

navigateurs:konqueror, safari,google chrome…) Media Framework. Cette bibliothèque gère tout ce qui se

rapporte aux données multimédia.  Le Surface Manager consiste en un ensemble de fonctions

permettant d’afficher des éléments à l’écran. C’est l’équivalent d’un serveur X pour un système Linux.

Open SSL: algorythme de cryptage des données OpenGL/ES: Bibliotheque graphique 3D SGL: graphique 2D

Page 19: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Architecture Android Les Bibliotheques

Page 20: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Architecture Android La Dalvik virtual machine

(DVM)

Est la machine virtuelle Java pour les applications Android

Conçu pour exécuter du code Java pour des systèmes ayant des contraintes de place mémoire et rapidité d'exécution

Exécute du code .dex (Dalvik executable) = des .class adaptés à l'environnement Android

Ecrit par Dan Bornstein d'où le nom (= village islandais dont sont originaires certains de ses ancêtres)

A été choisi par Google car une machine Android peut lancée plusieurs instance de la DVM efficacement

Le code de la DVM est open source

Page 21: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Architecture Android- DVM

. Dalvik exécute du bytecode qui est créé à partir de programmes écrits en Java. Les programmes compilés sont créés au format Dalvik exécutable (.dex) via l’outil dx intégré au SDK.

Dalvik propose 30 % d’instructions en moins qu’une JVM classique, mais avec des instructions 35 % plus grandes. Il en résulte une charge de travail moins importante, et le temps d’exécution est deux fois plus rapide qu’avec des machines Java standard.

Pour économiser aussi de la mémoire, Dalvik a été conçu pour gérer plusieurs processus et partager la bibliothèque principale entre ces processus. Tout est fait pour économiser le plus de cycles processeur.

Enfin, depuis la version 2.3 d’Android, Dalvik possède un « ramasse-miettes » permettant une gestion du multitâche accrue.

Page 22: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Architecture Android -Application Frameworks

Ce framework est écrit entièrement en Java. Il fournit tout ce dont les applications peuvent avoir besoin.

Ces besoins sont de différentes natures. Voici les principales ressources offertes par le framework :

- Activity Manager : c’est lui qui gère le cycle de vie des applications et assure une partie du multitâche.- Package manager : il permet à l’Activity Manager de manipuler les paquets au format .apk- Window Manager : il utilise le Surface Manager (Surface Flinger) et gère l’affichage- Ressource Manager : lui s’occupe de tout ce qui n’est  pas du code (image, audio, vidéo…)- Content Provider : c’est le système qui permet le partage des données entre les applications - Le View System : c’est le fournisseur des composants graphiques. GTK+ est l’équivalent sous un système Linux traditionnel.- Telephony service : il fournit l’accès aux interfaces de téléphonies. (GSM, 3G, GPRS…)- Location service permet l’utilisation du GPS.- Bluetooth Service : comme son nom l’indique, prend en charge le Bluetooth- Wifi Service : fait de même pour le Wifi.- Sensor Service : fourni l’accès pour les différents détecteurs (accéléromètre, compas, lumière…)

Page 23: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Architecture Android -Application Frameworks

Page 24: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Architecture Android -Application Frameworks

- Une première machine virtuelle est lancée (au démarrage du système) : SystemServer.

- Le framework est lié à cette machine virtuelle et communique par IPC.

- Une autre machine virtuelle est aussi lancée c’est Zygote. Celle-ci va créer de nouvelle machines virtuelles pour les applications.

Le framework est une partie d’Android très complexe, il « englobe » et lie beaucoup d’autre composant. Grâce au mécanisme IPC, il peut communiquer avec presque tout le système. Avec les applications pour leur créer leur environnement d’exécution (Dalvik), avec le noyau Linux (via le processus SystemServer), avec les bibliothèques et avec les différentes interfaces (ADB, AIDL…).

Page 25: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Architecture Android -Application Frameworks

Page 26: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Architecture Android -Les Applications

Les applications se divisent en deux catégories: Les services qui sont des codes fonctionnant en arrière-plan, non

interactif. les activités qui prennent la forme d’écrans.

Les activités fonctionnent suivant un principe de « pile ». C’est un fonctionnement similaire aux technologies Web. Les activités sont comme des pages Web, et l’utilisateur peut naviguer à sa guise d’une page à l’autre (autrement dit d’une application à une autre, mais aussi entre différentes activités d’une même application).

Pour réaliser cette navigation, les applications (activités) font toujours appel à Binder . Pour utiliser le mécanisme d’IPC, les applications créent des intents (intentions). Ces derniers ne provoquent pas d’action directe, mais sont interceptés par le framework pour être interprétés. Suivant les types d’intents, il se peut que plusieurs applications puissent y répondre. Dans ce cas, une boite de dialogue est affichée, permettant à l’utilisateur de choisir lui-même l’application.

Page 27: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Architecture Android - Les Applications

Page 28: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Architecture Android

Page 29: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Glossaire ADB : adb signifie Android Debug Bridge. C'est une interface en ligne de commandes permettant de communiquer avec un

émulateur / ordinateur et le terminal sous Android. AIDL : afin que les applications puissent s'échanger des données, Google a créé sa propre interface : Android Interface

Description Langage. AIDL désigne un fichier portant l'extension .aidl, mais aussi l'outil permettant de générer ces fichiers. API : une interface de programmation (Application Programming Interface ou API) est une interface fournie par un programme

informatique. Elle permet l'interaction des programmes les uns avec les autres, de manière analogue à une interface homme-machine, qui rend possible l'interaction entre un homme et une machine.

Binder : voir IPC Dalvik : Dalvik est la machine virtuelle utilisée dans les appareils mobiles Android. Elle permet d'exécuter les applications qui

peuvent être écrites en Java et converties en un exécutable compact Dalvik (.dex), format adapté aux systèmes limités en termes de mémoire et de vitesse du processeur.

GPIO : les ports GPIO (General Purpose Input/Output, c'est-à-dire entrée/sortie pour un usage général) sont des ports d'entrée/sortie très utilisés dans le monde des microcontrôleurs, en particulier dans le domaine de l'électronique embarquée. Selon la configuration, ces ports peuvent fonctionner aussi bien en entrée qu'en sortie.

IPC (Binder) : en informatique, les communications inter processus (Inter-Process Communication ou IPC) regroupent un ensemble de mécanismes permettant à des processus concurrents (ou distants) de communiquer.

Linux : appellation courante du système d'exploitation libre GNU/Linux, est une variante du système GNU, fonctionnant avec le noyau Linux. 

Logger : il est lié au Syslog. Syslog est un protocole définissant un service de journaux d'évènements d'un système informatique. C'est aussi le nom du format qui permet ces échanges.

POSIX : POSIX est le nom d'une famille de standards définie depuis 1988 par l'Institute of Electrical and Electronics Engineers et formellement désignée IEEE 1003. Ces standards ont émergé d'un projet de standardisation des API des logiciels destinés à fonctionner sur des variantes du système d'exploitation UNIX.

SDK : un kit de développement ou trousse de développement logiciel, est un ensemble d'outils permettant aux développeurs de créer des applications de type défini. Les kits de développement logiciels sont souvent désignés par le sigle anglais SDK (Software Development Kit) ou devkit.

STDERR (voir stdout) : elle joue le même rôle que la sortie standard, mais ne s'occupe que des erreurs lors de l'exécution d'un programme.

STDOUT : le stdout est le nom de la sortie standard. La sortie standard est le flux de sortie dans lequel les données sont écrites par le programme. Les données sont habituellement écrites à l'écran, à moins d'une redirection. Ce flux est prévu pour être le flux de sortie par défaut.

Page 30: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Installer l'environnementde développement Android

Apres avoir installé le JDK Java SEil suffit de télécharger l'ADT Bundle for Windows (400 Mo) à:http://developer.android.com/sdk Comme indiqué, cet ADT (Android

Development Tools) délivre :Eclipse, le SDK Android, le plug-in Eclipse vers ce SDK Android (= le ADT plugin)

Page 31: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

La pile des outils dedéveloppement pour Android

Page 32: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Fin de l'installation del'environnement

Après extraction de adt-bundle-windows-XXX, lancer SDK Manager.exe

Un répertoire eclipse est construit contenant une version d'Eclipse avec l'ADT plug-in initialisé correctement sur le SDK Android téléchargé

Et c'est tout : on peut commencer à faire du développement pour Android

Page 33: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Le AVD (Android VirtualDevice) (1/3)

Pour exécuter les programmes Android, il suffit d'un émulateur. C'est le AVD (Android virtual device)

A la première utilisation il faut en obtenir un. Par la suite on pourra utiliser toujours celui là

Dans Eclipse, on peut construire un nouvel AVD par le Bouton de la barre de menu :

Page 34: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Le AVD (Android VirtualDevice) (2/3)

Il faut lancer le virtual device manager:

Ensuite nous allons créer un virtual device en cliquant sur New:

Page 35: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Le AVD (Android VirtualDevice) (3/3)

Dans la fenêtre "Create new Android Virtual Device (AVD)", Donner lui un nom "parlant" et affecter un device et la target:

Puis cliquez sur CREATE afin qu’il apparaisse dans la liste des AVD:

Page 36: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

CHAPITRE 2DEVELOPPEMENT ANDROID

Page 37: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

PLAN DU CHAPITRE 2

Les composants d'une application Android : Activity, Service, Content Provider, Broadcast Receiver,Les Intent

Fonctionnalités fournies par Android Structure d’une application Le manifeste : AndroidManifest.xml Développer une application Android Un premier programme

Page 38: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Concepts de base

Les programmes sont écrits en Java L'Android SDK compile l'ensemble du

développement (code Java,données, fichier de ressources, fichier XML) dans un paquetage Android : un .apk

Toute une application tient dans un .apk et .apk = une application

Les composants fondamentaux d'une application Android sont :

Activity, Service, Content Provider, Broadcast Receiver

Certains de ces composants communiquent entre eux à l'aide d'Intent

Page 39: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Activity (activité)

La brique de base de l’interface utilisateur s’appelle activity (activité). Vous pouvez la considérer comme l’équivalent Android de la fenêtre ou de la boîte de dialogue d’une application classique.

Bien que des activités puissent ne pas avoir d’interface utilisateur, un code "invisible" seradélivré le plus souvent sous la forme de fournisseurs de contenus (content provider) ou de services.Les activités sont indépendantes les unes des autres.Une activité est une sous classe de android.app.Activity

Page 40: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Content providers (fournisseurs de contenus)

Les fournisseurs de contenus offrent un niveau d’abstraction pour toutes les données stockéessur le terminal et accessibles aux différentes applications. Le modèle de développement Android encourage la mise à disposition de ses propres données aux autres programmes .

Exemple de fournisseur de contenu : les informations de contact de l'utilisateur du smartphone. On peut créer un fournisseur de contenus pour des données qu'on veut partager. On récupère un fournisseur de contenu pour des données partageables en demandant le ContentResolver du système et en donnant ensuite, dans les requêtes, l'URI des données.

Page 41: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Les Intents (intentions)

Les intentions sont des messages système. Elles sont émises par le terminal pour prévenir les applications de la survenue de différents événements, que ce soit une modification matérielle (comme l’insertion d’une carte SD) ou l’arrivée de données (telle la réception d’un SMS), en passant par les événements des applications elles-mêmes (votre activité a été lancée à partir du menu principal du terminal, par exemple).

Vous pouvez non seulement répondre aux intentions, mais également créer les vôtres afin de lancer d’autres activités ou pour vous prévenir qu’une situation particulière a lieu (vous pouvez, par exemple, émettre l’intention X lorsque l’utilisateur est à moins de 100 mètres d’un emplacement Y).

Un évènement est une sous classe de android.content.Intent.

Page 42: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Services

Les activités, les fournisseurs de contenus et les récepteurs d’intentions ont une durée de vie limitée et peuvent être éteints à tout moment.

Les services sont en revanche conçus pour durer et, si nécessaire, indépendamment de toute activité.

Vous pouvez, par exemple, utiliser un service pour vérifier les mises à jour d’un flux RSS ou pour jouer de la musique, même si l’activité de contrôle n’est plus en cours d’exécution.

Un service est une sous classe de android.app.Service

Page 43: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Broadcast receiver Un récepteur d'informations (broadcast receiver) est un composant àl'écoute d'informations qui lui sont destinées. Un tel récepteur indique letype d'informations qui l'intéressent et pour lesquelles il se mettra enécoute. Exemple : appel téléphonique entrant, réseau Wi-Fi connecté, informations diffusées par des applications L'application réceptrice d'informations (c'est à dire possédant un

récepteur d'informations) n'a pas besoin d'être lancée. Si elle ne l'est pas, Android la démarre automatiquement

Un récepteur n'est pas une IHM mais peut en lancer une (éventuellement

petite : une barre de notification), ou peut lancer un service traitant l'arrivéede l'information Un récepteur d'informations est une sous classe de

android.content.BroadcastReceiver Les informations sont des Intent

Page 44: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Fonctionnalités fournies par Android

Stockage Réseau Multimédia GPS Services téléphoniques

Page 45: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Stockage

Vous pouvez empaqueter (packager) des fichiers de données dans une application, pour y stocker ce qui ne changera jamais – les icônes ou les fichiers d’aide, par exemple.

Vous pouvez également réserver un petit emplacement sur le terminal lui-même, pour y stocker une base de données ou des fichiers contenant des informations nécessaires à votre application et saisies par l’utilisateur ou récupérées à partir d’une autre source.

Si l’utilisateur fournit un espace de stockage comme une carte SD, celui-ci peut également être lu et écrit en fonction des besoins.

Page 46: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Réseau

Les terminaux Android sont généralement conçus pour être utilisés avec Internet, via un support de communication quelconque.

Vous pouvez tirer parti de cet accès à Internet à

n’importe quel niveau, des sockets brutes de Java à un widget de navigateur web intégré que vous pouvez intégrer dans votre application.

Page 47: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Multimédia

Les terminaux Android permettent d’enregistrer et de jouer de la musique et de la vidéo.

Bien que les caractéristiques spécifiques varient en fonction des modèles, vous pouvez connaître celles qui sont disponibles et tirer parti des fonctionnalités multimédias offertes, que ce soit pour écouter de la musique, prendre des photos ou enregistrer des mémos vocaux.

Page 48: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

GPS

Les fournisseurs de positionnement, comme GPS, permettent d’indiquer aux applications où se trouve le terminal. Il vous est alors possible d’afficher des cartes ou d’utiliser ces données géographiques pour retrouver la trace du terminal s’il a été volé, par exemple.

Page 49: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Services Téléphoniques

Évidemment, les terminaux Android sont généralement des téléphones, ce qui permet à vos programmes de passer des appels, d’envoyer et de recevoir des SMS et de réaliser tout ce que vous êtes en droit d’attendre d’une technologie téléphonique moderne.

Page 50: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Structure d’une application

AndroidManifest.xml est un fichier XML qui décrit l’application à construire et les composants – activités, services, etc. – fournis par celle-ci.

build.xml est un script Ant permettant de compiler l’application et de l’installer sur le terminal (ce fichier n’est pas présent avec un environnement de programmation adapté, tel Eclipse).

default.properties et local.properties sont des fichiers de propriétés utilisés par le script précédent.

bin/ contient l’application compilée. gen/ contient le code source produit par les outils de compilation d’Android. libs/ contient les fichiers JAR extérieurs nécessaires à l’application. src/ contient le code source Java de l’application. res/ contient les ressources – icônes, descriptions des éléments de

l’interface graphique (layouts), etc. – empaquetées avec le code Java compilé.

tests/ contient un projet Android entièrement distinct, utilisé pour tester celui que vous avez créé.

assets/ contient les autres fichiers statiques fournis avec l’application pour son déploiement sur le terminal.

Page 51: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Structure d’une application

Fichiers statiques, images, menus…

Classes java compilées

Fichiers java

Fichiers jar utiles a l’appli.

Fichiers statiques pour déploiement sur le terminal

Code source produit par la compilation

Page 52: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Le manifeste(AndroidManifest.xml)

C’est dans ce fichier que l’on déclare ce quecontiendra l’application – les activités, les services, etc. On y indique également la façon dont ces composants seront reliés au système Android lui-même en précisant, par exemple, l’activité (ou les activités) qui doivent apparaître dans le menu principal du terminal (ce menu est également appelé "lanceur" ou

"launcher").

Page 53: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Le manifeste(AndroidManifest.xml)

Ce fichier contient aussi : les permissions nécessaires à l'application (accès internet,

accès en lecture/écriture aux données partagées) le numéro minimum de la version API utilisée des logiciels et matériels utilisés par l'application

(caméra) des bibliothèques supplémentaires à l'API de base (Google

maps library) Parmi les composants, seuls les récepteurs d'évènements

(broadcast receiver) peuvent ne pas être indiqués dans le manifeste. Les autres(activitys, services, content providers) doivent l'être sinon ils ne seront jamais lancés quel que soit le code écrit !

Page 54: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Développer une application Android

De l'installation de l'environnement à la publication de l'application Les phases sont :

Installation de l'environnement (setup) = installer le SDK et les AVDs (Android Virtual Device)

Le développement = développer le code et les ressources de l'application

débuguer et tester = DDMS et JUnit publier sur le Google Play On peut faire ces diverses phases en ligne de

commande ou avec Eclipse

Page 55: Découvrir la plateforme Android  La plateforme Android  L'architecture Android  Les outils de développement : installation  Une première application

Cas Pratique

Créons notre première application