resumé android

23
Chapitre 1 : Initiation au développement d’applications Android Un périphérique mobile : Pas de disque dur mais une ROM, Fonctionne sur batterie, Moyens de communication variés , Pas de clavier/souris Android: un système d'exploitation open source pour Smartphones, PDA et terminaux mobiles Architecture de la plateforme De quoi on a besoin? Java , SDK Android IDE Eclipse + plugin ADT (Android Developement Tools) -> réduit le temps de développement et test EMULATEUR : AVD(Android Virtuel Device) L’émulateur sert à exécuter le code Java et xml que nous avons développer sans avoir besoin de brancher un téléphone réel Concepts fondamentaux Concepts fondamentaux à préciser : les activités

Upload: wael-habboubi

Post on 24-Dec-2015

26 views

Category:

Documents


0 download

DESCRIPTION

toutes les bases d'android

TRANSCRIPT

Page 1: Resumé Android

Chapitre 1 : Initiation au développement d’applications Android

• Un périphérique mobile : Pas de disque dur mais une ROM, Fonctionne sur batterie, Moyensde communication variés , Pas de clavier/souris

• Android: un système d'exploitation open source pour Smartphones, PDA et terminauxmobiles

Architecture de la plateforme

De quoi on a besoin?

• Java , SDK Android

• IDE Eclipse + plugin ADT (Android Developement Tools) -> réduit le temps dedéveloppement et test

EMULATEUR : AVD(Android Virtuel Device)

• L’émulateur sert à exécuter le code Java et xml que nous avons développer sans avoir besoinde brancher un téléphone réel

Concepts fondamentaux

Concepts fondamentaux à préciser :

• les activités

Page 2: Resumé Android

Une activité peut être assimilée à un écran structuré par un ensemble de vues et decontrôles composant son interface de façon logique : elle est composée d’unehiérarchie de vues contenant elles-mêmes d’autres vues.

Une application comportant plusieurs écrans, possédera donc autant d’activités

• les vues et contrôles (et leur mise en page)

Les vues sont les éléments de l’interface graphique que l’utilisateur voit et surlesquels il pourra agir. Les vues contiennent des composants, organisés selon diversesmises en page (les uns à la suite des autres, en grille…).

Les contrôles (boutons, champs de saisie, case à cocher, etc.) sont eux-mêmes unsous-ensembles des vues. Ils ont besoin d’accéder aux textes et aux images qu’ilsaffichent (par exemple un bouton représentant un téléphone aura besoin de l’image dutéléphone correspondante). Ces textes et ces images seront puisés dans les fichiersressources de l’application.

• les ressources ;

• le fichier de configuration appelé également "manifeste"

Le fichier de configuration XML de l’application. C’est un fichier indispensable àchaque application qui décrit entre autres :

le point d’entrée de votre application (quel code doit être exécuté au démarrage del’application) ;

quels composants constituent ce programme ; les permissions nécessaires à l’exécution du programme (accès à Internet, accès à

l’appareil photo...)..

Composantes d’une application Android

▫ Composants applicatifs : activités , services , fournisseurs de contenu , gadgets

Activity (Activité):représente le bloc de base d’une application. Elle correspond àla partie présentation de l’application et fonctionne par le biais de vues quiaffichent des interfaces graphiques et répondent aux actions utilisateur. Uneactivité correspond à un écran mais elle peut contenir plusieurs vues.Content providers (fournisseurs de contenus): permet de gérer et de partagerdes informations. Un même fournisseur permet d’accéder à des données au seind’une application et entre applications (partage des données).Le service est un composant qui fonctionne en tâche de fond, de manièreinvisible.Ses principales utilisations sont la mise à jour de sources de donnéesainsi que d’activités visibles et le déclenchement de notifications.Le gadget est un composant graphique qui s’installe sur le bureau Android. Lecalendrier qui affiche de l’information ou le lecteur audio qui permet de contrôlerla lecture de fichiers sont deux exemples de gadgets que l’on trouve souvent surun écran d’accueil.

▫ Éléments d’interaction : objets Intent , récepteurs d’Intents , notifications.

Intents (intentions): Les intentions sont des messages système. Elles sontémises par le terminal pour prévenir les applications de la survenue dedifférents événements, exp: une modification matérielle (comme l’insertiond’une carte SD) ou l’arrivée de données (telle la réception d’un SMS)

Page 3: Resumé Android

Récepteur d’Intents : il permet à une application d’être à l’écoute des autresafin de répondre aux objets Intent qui lui sont destinés et qui sont envoyéspar d’autres composants applicatifsNotification : une notification signale une information à l’utilisateur sansinterrompre ses actions en cours

Cycle de Vie d’une application Android Une activité possède trois états :

Active (running) : Quand l'activité est au premier planet reçoit les actions utilisateur.

Stopped : Quand elle n'est plus visible ( Toujoursvivante Mais sera tuée des que des ressources serontnécessaires. )

Paused : Quand elle est toujours visible mais n'a pas lefocus (autre activité transparente par dessus ouactivité ne prenant pas tout l‘écran) ( Toujours vivanteMais peut être tuée en cas de ressources très limitées)

Le système tue les activités en état "stopped" (ou"paused« ) de deux manières :

En appelant la méthode finish()

En tuant le processus tout simplement

Quand l‘activité sera a nouveau demandée :

Doit être complètement reconstruite

Doit Potentiellement recharger son dernier état

Une activité est notifiée de ses changement d‘état parl'appel à ces méthodes :

void onCreate(Bundle savedInstanceState)

void onStart(), void onRestart(), void onResume()

void onPause(), void onStop(), void onDestroy()

Afin de sauvegarder le contexte le système appelle"onSaveInstanceState()" avant de rendre l'applicationpotentiellement tuable (paused...)

Cet appel fournit un bundle "clé/valeurs" pour que ledéveloppeur puisse sauvegarder l‘état Au prochainappel de "onCreate()" ce bundle sera fournit

L'appel a la sauvegarde n'est faite qu'en cas de risquede terminaison de l‘activité par le système et non sicela vient d'une action utilisateur (back)

Récepteur d’Intents : il permet à une application d’être à l’écoute des autresafin de répondre aux objets Intent qui lui sont destinés et qui sont envoyéspar d’autres composants applicatifsNotification : une notification signale une information à l’utilisateur sansinterrompre ses actions en cours

Cycle de Vie d’une application Android Une activité possède trois états :

Active (running) : Quand l'activité est au premier planet reçoit les actions utilisateur.

Stopped : Quand elle n'est plus visible ( Toujoursvivante Mais sera tuée des que des ressources serontnécessaires. )

Paused : Quand elle est toujours visible mais n'a pas lefocus (autre activité transparente par dessus ouactivité ne prenant pas tout l‘écran) ( Toujours vivanteMais peut être tuée en cas de ressources très limitées)

Le système tue les activités en état "stopped" (ou"paused« ) de deux manières :

En appelant la méthode finish()

En tuant le processus tout simplement

Quand l‘activité sera a nouveau demandée :

Doit être complètement reconstruite

Doit Potentiellement recharger son dernier état

Une activité est notifiée de ses changement d‘état parl'appel à ces méthodes :

void onCreate(Bundle savedInstanceState)

void onStart(), void onRestart(), void onResume()

void onPause(), void onStop(), void onDestroy()

Afin de sauvegarder le contexte le système appelle"onSaveInstanceState()" avant de rendre l'applicationpotentiellement tuable (paused...)

Cet appel fournit un bundle "clé/valeurs" pour que ledéveloppeur puisse sauvegarder l‘état Au prochainappel de "onCreate()" ce bundle sera fournit

L'appel a la sauvegarde n'est faite qu'en cas de risquede terminaison de l‘activité par le système et non sicela vient d'une action utilisateur (back)

Récepteur d’Intents : il permet à une application d’être à l’écoute des autresafin de répondre aux objets Intent qui lui sont destinés et qui sont envoyéspar d’autres composants applicatifsNotification : une notification signale une information à l’utilisateur sansinterrompre ses actions en cours

Cycle de Vie d’une application Android Une activité possède trois états :

Active (running) : Quand l'activité est au premier planet reçoit les actions utilisateur.

Stopped : Quand elle n'est plus visible ( Toujoursvivante Mais sera tuée des que des ressources serontnécessaires. )

Paused : Quand elle est toujours visible mais n'a pas lefocus (autre activité transparente par dessus ouactivité ne prenant pas tout l‘écran) ( Toujours vivanteMais peut être tuée en cas de ressources très limitées)

Le système tue les activités en état "stopped" (ou"paused« ) de deux manières :

En appelant la méthode finish()

En tuant le processus tout simplement

Quand l‘activité sera a nouveau demandée :

Doit être complètement reconstruite

Doit Potentiellement recharger son dernier état

Une activité est notifiée de ses changement d‘état parl'appel à ces méthodes :

void onCreate(Bundle savedInstanceState)

void onStart(), void onRestart(), void onResume()

void onPause(), void onStop(), void onDestroy()

Afin de sauvegarder le contexte le système appelle"onSaveInstanceState()" avant de rendre l'applicationpotentiellement tuable (paused...)

Cet appel fournit un bundle "clé/valeurs" pour que ledéveloppeur puisse sauvegarder l‘état Au prochainappel de "onCreate()" ce bundle sera fournit

L'appel a la sauvegarde n'est faite qu'en cas de risquede terminaison de l‘activité par le système et non sicela vient d'une action utilisateur (back)

Page 4: Resumé Android

Première application Android

• Package Name : Par convention, le nom du package s’écrit de cette forme suivante :extension_de_votre_domaine.nom_du_domaine.nom_du_projet exp: com.LFI3.HelloWorld

• Create Activity : c'est l'Activity principale de l'application, on peut la nommer :HelloWorldActivity , cette Activity est représentée par une classe JavaHelloWorldActivity.java

• gen : dossier qui contiendra le fichier R.java (cefichier est généré automatiquement à partir devos vues et fichiers de ressource généré par le SDKAndroid à chaque précompilation.).

• assets : contient des données qui pourront êtreutilisées dans votre application (images, vidéos,licence, etc.).

• res : c'est le dossier qui contiendra les ressourcesde votre application (images, vidéos, styles).

drawable-hpdi (mdpi/ldpi): contient toutes les images,bitmaps dont vous avez besoin pour votre application enhaute(medium/low ) résolution

Icon.png : l'icône de votre application, cette icône seraaffichée sur le bureau

• layout : le SDK Android offre une technique decréation d'interfaces graphiques à l'aide defichiers XML. C'est dans ce dossier que vousinclurez l'ensemble des fichiers décrivant vosinterfaces

• Main.xml : le fichier principal de votre interface.

• values : ce dossier contient un ensemble defichiers décrivant les valeurs (pseudovariables)utilisées par votre application. On peut, parexemple, y mettre des chaînes de caractères(strings.xml), des tableaux (arrays.xml), desentiers, des couleurs, etc.

• Strings.xml : fichier qui contient vos déclarationsde chaînes de caractères.

• AndroidManifest.xml : définit le comportementde votre application au système Android. Cefichier définit par exemple le nom, l'icône, laversion min du SDK, les activités, les services, etc.Précise le nom du package java utilisantl'application. Cela sert d'identifiant unique !

Page 5: Resumé Android

Chapitre 2

AndroidManifest.xml

Fichier XML

Précise l'architecture de l'application

Chaque application doit en avoir un

AndroidManifest.xml a la racine du projet

Il décrit les composants de l'application

Liste des activités, services, broadcast receivers

Précise les classes qui les implémentent

Précise leurs capacités (a quels intents ils réagissent)

Ceci permet au système de savoir comment lancer chaque partie de l'application afin desatisfaire au principe de réutilisabilité.

Définit les permissions de l'application

Droit de passer des appels

Droit d'accéder a Internet

Droit d'accéder au GPS,…

Précise la version d'Android minimum nécessaire

Déclare les librairies utilisées

Conventions :

Seuls deux éléments sont obligatoire

< manifest > : contient le package, la version... Englobe tout le fichier

< application > : décrit l'application et contiendra la liste de ses composants.

Les données sont passées en tant qu'attribut et non en tant que contenu

Tous les attributs commencent par "android:" (sauf quelques un dans < manifest >)

Les ressources

Page 6: Resumé Android

Au lieu de contenir les données en tant que tel, le fichier manifest peut faire appel a desressources: < activityandroid : icon ="@drawable=smallPic"::: >

Ces ressources sont définies dans le répertoire "res" de l'application.

Permissions :

Une application ne peux pas utiliser certaines fonctionnalités sauf si c’est précisé dans lefichier Manifest

Il faut donc préciser les permissions nécessaires grâce a :< uses - permission >

Il est possible de définir ses propres permissions

Il existe des permission standard :

android.permission.CALL EMERGENCY NUMBERS

android.permission.READ OWNER DATA

android.permission.SET WALLPAPER

android.permission.DEVICE POWER

Intent Filter :

Ils informent le système a quelle intents les composants peuvent réagir

Un composant peut avoir plusieurs filtres

Editeur de texte

Filtre pour éditer un document existant

Filtre pour initier un nouveau document

Un filtre doit posséder une "action" qui définit a quoi il correspond

Page 7: Resumé Android

Déboguer une application Android(Le recherche des bugs...Généralement un débogage consiste àrechercher puis à corriger les erreurs ayant occasionné l'exécution erronée ou le plantage d'uneapplication.Le plus simple, les erreurs de syntaxe... par ex. de banales fautes de frappe ou le nonrespect des règles d'écriture d'un programme informatique dans un langage donné.)

Le débogage est une étape essentielle dans le cycle de vie du développement d’uneapplication.

Communications entre applications

La communication interne du système Android est basée sur ; l’envoi et la réception de messagesexprimant l’intention d’une action, la description abstraite d’une opération à effectuer , lacommunication entre deux composants de la même application ou entre deux composants de deuxapplications différentes.La communication entre applications est Issu de la classe Intent, ce message permet de véhiculertoutes les informations nécessaires à la réalisation de l’action :

◦ • informations à destination du composant qui le réceptionnera (action à effectueret les données avec lesquelles agir) ;

◦ • informations nécessaires au système pour son traitement (catégorie du composantcible du message et instructions d’exécution de l’action).

Deux façons d’envoyer des intents:

1. Mode explicite : en ciblant un composant précis d’une application,

2. Mode implicite : en laissant le système déléguer le traitement (ou non) de cette demande aucomposant le plus approprié

Un système de filtres permet à chaque application de filtrer et de gérer uniquement lesIntents qui sont pertinents pour celle-ci.

Une application peut ainsi être dans un état d’inactivité, tout en restant à l’écoute desintentions circulant dans le système

Principe de fonctionnement(des objets Intent)

Les objets Intent ont essentiellement trois utilisations : ils permettent de démarrer uneactivité au sein de l’application courante((une à la fois)utilisée pour la navigation entreécrans d’une interface graphique et l’appel d’une boîte de dialogue.) ou de solliciter (réclamer ) d’autres applications(Lorsqu’un besoin ne peut être satisfait par l’application elle-même, elle peut solliciter une autre application pour y répondre ) et d’envoyer desinformations.

Autres utilisations (des objets Intent)

démarrage d’un service : Le mécanisme relatif aux objets Intent et leur utilisation sont eneffet indispensables pour les applications fonctionnant en arrière plan telles que les services,

recevoir des actions à effectuer ou communiquer avec d’autres applications.

Page 8: Resumé Android

L’objet Intent

Un objet Intent véhicule toutes les informations nécessaires à la réalisation d’une action (ou à laréception d’information)

le nom du composant ciblé : cette information facultative permet de spécifier de façon nonambigüe le nom du composant qui sera utilisé pour réaliser l’opération.

l’action : une chaîne de caractères définissant l’action à réaliser ou qui s’est produite et pourlaquelle le système ou l’application informe toutes les autres ;

les données : le type de contenu MIME sous la forme d’une chaîne de caractères et lecontenu ciblé sous la forme d’un URI

Exemple : ACTION_VIEW et un URI de la forme http://<adresse du site> ;

la catégorie : cette information complémentaire permet de cibler plus précisément qui devragérer l’Intent émis

Exemple: CATEGORY_BROWSABLE : navigateur

les drapeaux : principalement utilisés pour spécifier comment le système doitdémarrer une activité.Exemple : FLAG_ACTIVITY_NO_ANIMATION

Navigation entre ecrans

Il existe deux méthodes pour démarrer une activité, en fonction de la logique de l’interface

◦ besoin de savoir comment s’est déroulée l’activité (et obtenir un retour lors de sonarrêt),

◦ Ou sans retour.

Démarrer une activité

startActivity :démarrer une activité sans attendre de retour.

Syntaxe:

Intent intent = new Intent(this,ActiviteADemarrer.class);

startActivity(intent);

Le constructeur de la classe Intent prend les paramètres suivants :

• Context PackageContext : le contexte à partir duquel l’Intent est créé et sera envoyé. Ceparamètre fait référence la plupart du temps à l’activité en cours pointée par le mot clef this

• Class<?> cls : un type de classe Java héritant de la classe Activity et pointé ici par le mot clefActiviteADemarrer.class.

Page 9: Resumé Android

erreur du type ActivityNotFoundException déclarer l’activité à démarrer dans le fichier deconfiguration AndroidManifest.xml de l’application

Démarrer une activité et obtenir un retour

startActivityForResult : lorsque l’activité enfant aura terminé sa tâche, elle en avertiral’activité parent.

Syntaxe : (coté activité parent )

private static final int CODE_MON_ACTIVITE = 1;...

Intent intent = new Intent(this,activite2.class);

startActivityForResult(intent, CODE_MON_ACTIVITE);

Syntaxe : (coté activité enfant)

public void onClick(View v) {

switch(v.getId()){

case R.id.button1:

setResult(RESULT_OK);

finish();

break;

case R.id.button2:

setResult(RESULT_CANCELED);

finish();

break; }

Récupérer la valeur de retour

Page 10: Resumé Android

Int requestCode : valeur identifiant quelle activité a appelé la méthode

int resultCode : représente la valeur de retour envoyée par la sous-activité pour signalerson état à la fin de la transaction. C’est une constante définie dans la classe Activity(RESULT_OK, RESULT_CANCELED, etc.) ou par le développeur ;

Intent data : cet objet permet d’échanger des données

Remarques:

si l’activité parent est définie avec l’attribut android:launchMode=«singleInstance» , laméthode OnActivityResult de l’activité parent sera appelée dès le lancement de la sous-activité et non à la fin de l’exécution de l’activité enfant ;

Int requestCode : valeur identifiant quelle activité a appelé la méthode

int resultCode : représente la valeur de retour envoyée par la sous-activité pour signalerson état à la fin de la transaction. C’est une constante définie dans la classe Activity(RESULT_OK, RESULT_CANCELED, etc.) ou par le développeur ;

Intent data : cet objet permet d’échanger des données

Remarques:

si l’activité parent est définie avec l’attribut android:launchMode=«singleInstance» , laméthode OnActivityResult de l’activité parent sera appelée dès le lancement de la sous-activité et non à la fin de l’exécution de l’activité enfant ;

Int requestCode : valeur identifiant quelle activité a appelé la méthode

int resultCode : représente la valeur de retour envoyée par la sous-activité pour signalerson état à la fin de la transaction. C’est une constante définie dans la classe Activity(RESULT_OK, RESULT_CANCELED, etc.) ou par le développeur ;

Intent data : cet objet permet d’échanger des données

Remarques:

si l’activité parent est définie avec l’attribut android:launchMode=«singleInstance» , laméthode OnActivityResult de l’activité parent sera appelée dès le lancement de la sous-activité et non à la fin de l’exécution de l’activité enfant ;

Page 11: Resumé Android

Déléguer (Charger ) au système le choix de l’application

envoyer une intention et demander au système de choisir le composant le plus appropriépour exécuter l’action transmise.

Exemple:

Uri uri = Uri.parse("tel:0612345678");

Intent intent = new Intent(Intent.ACTION_DIAL, uri);

startActivity(intent)

Déléguer (Charger ) au système le choix de l’application

envoyer une intention et demander au système de choisir le composant le plus appropriépour exécuter l’action transmise.

Exemple:

Uri uri = Uri.parse("tel:0612345678");

Intent intent = new Intent(Intent.ACTION_DIAL, uri);

startActivity(intent)

Déléguer (Charger ) au système le choix de l’application

envoyer une intention et demander au système de choisir le composant le plus appropriépour exécuter l’action transmise.

Exemple:

Uri uri = Uri.parse("tel:0612345678");

Intent intent = new Intent(Intent.ACTION_DIAL, uri);

startActivity(intent)

Page 12: Resumé Android

Chapitre 3: Interfaces graphiques

Les élements graphiques héritent de la classe View.

On peut regrouper des éléments graphiques dans une ViewGroup.

Des ViewGroup particuliers sont prédéfinis: ce sont des layouts (gabarits) qui proposent uneprédispositions des objets graphiques:

LinearLayout: dispose les éléments de gauche à droite ou du haut vers le bas

RelativeLayout: les éléments enfants les uns par rapport aux autres

TableLayout: disposition matricielle

FrameLayout: disposition en haut à gauche en empilant les éléments

Les plus importants sont:

android:layout_width et android:layout_height:

◦ ="fill_parent": l'élément remplit tout l'élément parent

◦ ="wrap_content": prend la place nécessaire à l'affichage

◦ android:orientation: définit l'orientation d'empilement

android:gravity: définit l'alignement des éléments

L'interface comme ressource

Une interface graphique définie en XML sera aussi générée comme une ressource dans laclasse statiqueR.

Le nom du fichier xml, par example accueil.xml permet de retrouver le layout dans le codejava au travers de R.layout.accueil.

Associer la première vue graphique à l'activité principale de l'application :

Page 13: Resumé Android

Le layout reste modifiable au travers du code, comme tous les autres objets graphiques,Pourcela, il est important de spécifier un id dans la définition XML du layout(android:id="@+id/accueilid") ,Ainsi, on peut accéder à cet élément par son id et agir dessusau travers du code Java:

Les éléments graphiques de base

Un Layout peut contenir des éléments graphiques, ou d'autres Layout.

Les labels de texte

◦ En XML:

◦ Par la programmation

Page 14: Resumé Android

Les images

◦ Par Xml

◦ Par la programmation:

Les Zones textes

◦ Par XML

◦ Par la programmation

Les boutons :

◦ En XML:

Page 15: Resumé Android

La gestion des événements de click se font par l'intermédiaire d'un listener:

Les listes:

Au sein d'un Layout, on peut implanter une liste que l'on pourra dérouler si le nombred'éléments est important.

pour afficher une liste d’items dans celle-ci, il lui faut un adaptateur de données.

Dans notre activité principale, nous allons récupérer notre ListView et lui affecter unadaptateur grâce à la méthode setAdapter,

Ajoutons-y un objet de type ArrayAdapter, contenant une liste de String avec un layoutgénérique d’item que fournit la plateforme par défaut et enfin la liste des données.

Page 16: Resumé Android

Remarque:

Syntaxe : ArrayAdapter<Type de données>(le contexte,le style des items,les données);

Les onglets: La réalisation d'onglets permet de mieux utiliser l'espace réduit de l'écran.

Main.xml :

TabWidget : contiendra les onglets

FrameLayout contiendra le contenu de ses onglets

Page 17: Resumé Android

Ensuite on va des fichiers XML qui contiendra l'interface du contenu de chaque ongletOnglet1.xml

Partie JAVA :

On commence par créer notre activité principale TabAndroidActivity.java

On place tout les imports nécessaires :

Ensuite on va des fichiers XML qui contiendra l'interface du contenu de chaque ongletOnglet1.xml

Partie JAVA :

On commence par créer notre activité principale TabAndroidActivity.java

On place tout les imports nécessaires :

Ensuite on va des fichiers XML qui contiendra l'interface du contenu de chaque ongletOnglet1.xml

Partie JAVA :

On commence par créer notre activité principale TabAndroidActivity.java

On place tout les imports nécessaires :

Page 18: Resumé Android

Lier le premier onglet à l’activité principale:

On peut définir l’onglet par défaut avec : tabHost.setCurrentTab(0);

Création des classes pour les onglets :

Ne pas oublier de déclarer les activités des onglets dans l’android manifest

Chapitre 4: Les Services

Les applications qui s’exécutent fréquemment ou continuellement sans nécessiter constammentune interaction avec l’utilisateur peuvent être implémentées sous la forme d’un service. (: Lesapplications qui récupèrent des informations (informations, météo, résultats sportifs, etc.) via desflux RSS/Atom )

Ils ne disposent pas d'interface utilisateur.

fonctionnent en arrière plan pour une période de temps indéfinie

Il existe deux types de services :

Services locaux (LocalService) :

Services qui s’exécutent dans le même processus que votre application.

Un service Local n'est accessible que par les Activity de l'application.

Page 19: Resumé Android

s'exécute dans le processus de l'application et plus particulièrement dans le threadprincipal.

Services distants (RemoteService)

s'exécutent dans un processus totalement différent de celui de votre application .

Un RemoteService peut être sollicité par plusieurs applications différentes.

Le Cycle de vie d’un service

le service n’a pas de durée de vie définie , fonctionne tant que c’estnécessaire.

Android fournit des services prédéfinis aux quels on peut accéder via laméthode getSystemService().

Tout autre service doit être déclarer dans le fichier AndroidManifest.xmlvia <service android:name="yourclasss"> </service>

OnCreate() : cette méthode est appelée à la création du service et est engénéral utilisée pour initialiser ce qui sera nécessaire à votre service ;

OnStart(Intent i) : le service démarre. Valable uniquement pour lesversions du SDK inférieur à 2.0 ;

OnStartCommand(Intent i, int flags, int startId) : le service démarre. Valable uniquementpour les versions du SDK supérieur à 2.0 ;

OnDestroy() : appelé à la fermeture du service.

pour créer un service, il suffit d’implémenter une classe qui hérite de la classe Service

Une activité peut démarrer un Service via la méthode startService() et le stopper viastopService()

La méthode onBind sert quand on veut faire communiquer le service avec un autreservice,ou avec une activité ..etc.

Exemple : Géolocalisation du téléphone (Voir Cours 4 : Diapo 11)

requestLocationUpdates(String, long, float, LocationListener).Cette méthode possède 4 arguments :

Le provider utilisé pour recevoir les mises à jour des coordonnées utilisateurs (GPS /NETWORK …)

Un intervalle minimum entre deux notifications (en millisecondes)

Page 20: Resumé Android

Un intervalle minimum entre deux notifications (en mètre)

L’instance de votre LocationListener

Chapitre 5 : Intégration de Google Map sous Android (j'ai commencé a partirdu diapo14)

La méthode IsRouteDisplayed sert à indiquer si votre application affiche des itinéraires(utilisé pour la navigation).

Afin de permettre à l’utilisateur de zoomer à l’aide de bouton, il faut d’utiliser la méthodesetBuiltInZoomControls sous le oncreate() , on met :

Si on souhaite ajuster le niveau de zoom défini lors de l’initialisation de notre carte, onutilise la méthode setZoom

Pour afficher une vision satellite d’une carte, on utilise la méthode setSatellite enindiquant si on souhaite afficher la vision satellite (true) ou non (false).

nous allons faire en sorte qu’au moment où l’utilisateur appuie sur le bouton VOLUME_UP(augmenter le volume) la vision satellite s’active. Même chose pour lebouton VOLUME_DOWN (vision satellite désactivée).

Page 21: Resumé Android

Mise à jour de la position sur la carte

Afficher une boussole

une classe existe dans l’API Google Map d’Android qui permet d’indiquer la position, ils’agit de MyLocationOverlay

Créer notre variable,Instancier la classe,Affichage d’une boussole

Réagir au positionnement de l’utilisateur

Page 22: Resumé Android

Chapitre 6 : Application sur les listview et les Broadcast Receivers

Les Broadcast Receivers

Un BroadcastReceiver ne possède qu’une seule méthode onReceive() que votre classedevra implémenter.

Un BroadcastReceiver ne vit que le temps de traiter votre onReceive() .

lorsque le BroadcastReceiver est implémenté sur un composant qui a une durée de vieassez longue, comme une activité ou un service : dans ce cas, le récepteur vivra aussilongtemps que son « hôte »

faut appeler registerReceiver() dans la méthode onResume() ou onCreate() de l’activitépour annoncer son intérêt pour une intention,

Le système Android envoie l’intention à tous les BroadCast Receiver abonnées par ordre depriorité (priorité de votre BroadCast dans le fichierAndroidManifest.xml).

Si un BroadCast souhaite interrompre la réception du Broadcast à ceux d’un niveauinferieure de priorité, il faut utiliser la méthode abortBroadcast().

Exemple: Un BR qui « écoute » la réception d’un sms

Page 23: Resumé Android

Le Broadcast Receiver doit être déclarer dans le fichier manifest.xml

Application ( voir cours 6 diapo 9 )