SlideShare une entreprise Scribd logo
1  sur  21
DRO
IDQUELQUES NOTIONS EN PROGRAMMATION
POUR ANDROID
© 2014 WIKI INFO SYSTÈME TOUS DROITS RÉSERVÉS
PLAN
• Les principaux composants Android
• Intent
• View
• Activity
• Service
• ContentProvider
• BroadcastReceiver
• Cycle de vie d’une activité
• Etats d’une activité
INTRODUCTION
• Le développement sur Android s’appuie sur des classes importantes du
framework. Ces classes sont, en quelque sorte, les « briques » élémentaires
sur lesquelles vos futures applications reposeront. Elles sont tellement
indispensables qu’il est tout simplement impossible de construire votre
application sans passer par au moins l’une d’elles. Cette partie tente de
décrire de façon globale et succincte ces différentes « briques ».
INTENT
• Les Intents sont des objets permettant de faire passer des messages
contenant de l’information entre composants principaux. La notion d’Intent
peut être vue comme une demande de démarrage d’un autre composant,
d’une action à effectuer. La raison d’être des Intents provient du modèle de
sécurité d’Android. Chaque application est en effet sandboxée. Cela veut dire
qu’une application A ne peut accéder aux données d’une application B. Grâce
aux Intents, les applications ont la possibilité de fournir leurs services ou
données si elles le souhaite.
VIEW
• Les Views sont les composants de base de l’interface graphique. Elles permettent de
construire l’interface utilisateur. Les widgets (nom donné à des composants graphiques
« avancés » : une barre de progression, par exemple, est un widget), composants graphiques
ou autres layout (composant permettant de placer les différents composants graphiques à
l’écran) héritent en fait de cette classe élémentaire. Le rendu/dessin d’une View s’effectue par
l’intermédiaire d’un Canvas (qu’on peut assimiler à une feuille transparente sur laquelle on
dessine avec un crayon (Paint). Pour finir, la vue est le principal composant qui s’occupe de
gérer les actions utilisateurs (appui sur l’écran, sur le clavier, etc.).
• Lorsqu’on créé une application à l’aide du framework Android, le développeur doit hériter
d’au moins une des 4 classes brièvement décrites dans les diaporamas qui suivent.
• Les vues héritent de la classe View. On les trouve dans le package android.view.View.
ACTIVITY
• Le concept d’Activity repose sur la notion d’interaction utilisateur. Une
Activity représente la fenêtre ou tout simplement l’écran qui sera affiché à
l’utilisateur. Elle permet également de gérer des fonctionnalités telles que
l’appui sur la touche [MENU] ou l’affichage de messages d’alerte (Toast). Faites
bien attention à ne pas confondre la notion d’Activity et de View. Il est
évident que faire la différence entre ces deux notions est difficile à ce stade
de compréhension du framework. Rappelez vous que vos premières
réalisations vous permettront de dissocier les deux.
SERVICE
• Un Service est en fait un programme tournant en tâche de fond et n’ayant pas
d’interface graphique (ce qui n’est pas réalisable, à l’heure où j’écris ces
lignes, sur iPhone OS). L’exemple commun illustrant au mieux cette notion est
celui du lecteur mp3. Un lecteur mp3 ne nécessite pas, pour la plupart du
temps, d’interface graphique et doit tourner en tâche de fond laissant la
possibilité aux autres applications de travailler/s’exécuter librement.
CONTENTPROVIDER
• Les ContentProvider sont, comme l’exprime leurs noms, des gestionnaires de
données. Ils permettent de partager l’information entre applications.
Imaginons une application qui permette de conserver les cartes de visite
virtuelles d’un ensemble de personnes. Ces cartes de visite contiennent
généralement le nom, le prénom et un moyen de contact de la personne. Un
tel programme peut être créé sous forme de ContentProvider ce qui lui
permettra de fournir à d’autres applications présentes sur le système les
informations sur une personne. Une application tierce d’envoi de courriel
peut par exemple interroger ce ContentProvider afin d’obtenir l’adresse
courriel d’un contact.
BROADCAST RECEIVER
• Un BroadcastReceiver est une application qui est à « l’écoute » des autres
applications. Ce type d’application tente de répondre aux Intents qui lui sont
adressés. Il ne fait donc rien d’autres que d’être à l’écoute des Intents envoyés
par d’autres composants applicatifs.
CYCLE DE VIE D’UNE ACTIVITÉ (ACTIVITY)
• Une activité n'a pas de contrôle direct sur son propre état (et par conséquent
vous non plus en tant que programmeur), il s'agit plutôt d'un cycle rythmé par
les interactions avec le système et d'autres applications. Voici un schéma qui
présente ce que l'on appelle le cycle de vie d'une activité, c'est-à-dire qu'il
indique les étapes que va traverser notre activité pendant sa vie, de sa
naissance à sa mort. Vous verrez que chaque étape du cycle est représentée
par une méthode. Nous verrons comment utiliser ces méthodes en temps
voulu.
Tableau complet du cycle
de Vie des activités
• Les activités héritent de la classe Activity.
public class MainActivity extends Activity { // instructions; }
• Or, la classe Activity hérite de l'interface Context dont le but est de représenter tous les
composants d'une application. On les trouve dans le package android.app.Activity.
• On surcharge certaines méthodes qui sont appelées par Android pour définir le
comportement (même principe que les applets) :
 onCreate: lors de la création
 onDestroy: lorsque l’activité se termine
 onStart: lorsque l’activité démarre ou redémarre
 onPause: lorsque l’activité n’est plus en premier plan
 onResume: lorsque l’activité revient en premier plan
 onStop: lorsque l’activité n’est plus visible
 onRestart: lorsque l’activité redevient visible
EXEMPLE
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
REMARQUE
• Le petit @Override permet d'indiquer que l'on va redéfinir une méthode qui
existait auparavant dans la classe parente, ce qui est logique puisque vous
saviez déjà qu'une activité avait une méthode void onCreate() et que notre
classe héritait de Activity.
• L'instruction @Override est facultative. Elle permet au compilateur
d'optimiser le bytecode, mais, si elle ne fonctionne pas chez vous, n'insistez
pas, supprimez-la.
A NOTER
• Android se réserve le droit de tuer le processus UNIX d’une activité s’il n’y a plus assez de
ressources (mémoire). Les règles sont les suivantes:
1. Une activité en premier plan n’est tuée que si c’est elle qui consomme trop de
ressources.
2. Une activité en arrière plan ou non visible peut être tuée.
• Lorsqu’une activité a été tuée, si on revient dessus elle est relancée (onCreate). On peut
sauvegarder l’état (c’est-à-dire les propriétés) d’une activité (dans onPause) pour le retrouver
lorsqu’elle elle est recréée par le paramètre transmis à onCreate.
ETATS D’UNE ACTIVITÉ (ACTIVITY)
• Quand une application se lance, elle se met tout en haut de ce qu'on appelle
la pile d'activités.
• Une pile est une structure de données de type « LIFO », c'est-à-dire qu'il n'est
possible d'avoir accès qu'à un seul élément de la pile, le tout premier
élément, aussi appelé sommet. Quand on ajoute un élément à cette pile, le
nouvel élément prendra la première place et deviendra le nouveau sommet.
Quand on veut récupérer un élément, ce sera le sommet qui sera récupéré,
sorti de la liste et l'objet en deuxième place deviendra le nouveau sommet,
comme illustré à la figure suivante.
FONCTIONNEMENT
• L'activité que voit l'utilisateur est celle qui se trouve au-dessus de la pile.
Ainsi, lorsqu'un appel arrive, il se place au sommet de la pile et c'est lui qui
s'affiche à la place de votre application, qui n'est plus qu'à la deuxième place.
Votre activité ne reviendra qu'à partir du moment où toutes les activités qui
se trouvent au-dessus d'elle seront arrêtées et sorties de la pile. On retrouve
ainsi le principe expliqué précédemment, on ne peut avoir qu'une application
visible en même temps sur le terminal, et ce qui est visible est l'interface
graphique de l'activité qui se trouve au sommet de la pile.
LES 3 ÉTATS QUI DIFFÉRENCIENT LA VISIBILITÉ D’UNE
ACTIVITÉ (ACTIVITY)
PRÉPARÉ PAR: ING. DAVID JOSEPH
EMAIL: ing.josephdavid@gmail.com
© 2014 WIKI INFO SYSTÈME TOUS DROITS RÉSERVÉS

Contenu connexe

En vedette

Cómo guardar las marcas de un mapa de google en un archivo xml y acceder a es...
Cómo guardar las marcas de un mapa de google en un archivo xml y acceder a es...Cómo guardar las marcas de un mapa de google en un archivo xml y acceder a es...
Cómo guardar las marcas de un mapa de google en un archivo xml y acceder a es...Abimael Fernandes
 
Module1 exercices comptabilité
Module1 exercices comptabilitéModule1 exercices comptabilité
Module1 exercices comptabilitéjokermen
 
Groupe cardinal - communique de presse - inauguration Siège Manitowoc à Lyon
Groupe cardinal - communique de presse - inauguration Siège Manitowoc à LyonGroupe cardinal - communique de presse - inauguration Siège Manitowoc à Lyon
Groupe cardinal - communique de presse - inauguration Siège Manitowoc à LyonGeorges Dancette
 
Classement
ClassementClassement
Classementbenjaave
 
Quelque part dans la ville
Quelque part dans la villeQuelque part dans la ville
Quelque part dans la villeSacha Brz
 
Extrait du Livre exposition Lucien Morisset Musée de Saint-Paul-de Vence Je...
Extrait du Livre exposition Lucien Morisset Musée de Saint-Paul-de Vence   Je...Extrait du Livre exposition Lucien Morisset Musée de Saint-Paul-de Vence   Je...
Extrait du Livre exposition Lucien Morisset Musée de Saint-Paul-de Vence Je...Eco-evenement / Eco-communication
 
L'expansion de l'Occident
L'expansion de l'OccidentL'expansion de l'Occident
L'expansion de l'Occidentmlaugel
 
Gifs infos argos 24
Gifs   infos argos 24Gifs   infos argos 24
Gifs infos argos 24yves99
 
Miel et canelle
Miel et canelleMiel et canelle
Miel et canellemaryconte
 
Una Visita A Granada El Sacromonte
Una Visita A Granada   El SacromonteUna Visita A Granada   El Sacromonte
Una Visita A Granada El SacromonteAM GCH
 
Actividad 1 herramientas de la web 2
Actividad 1 herramientas de la web 2Actividad 1 herramientas de la web 2
Actividad 1 herramientas de la web 2ITS, ENSJ, UTP, UCPR
 
Classement général provisoire Pronodix
Classement général provisoire PronodixClassement général provisoire Pronodix
Classement général provisoire Pronodixbenjaave
 
I convocatoria matemática IX año curso 2015
I convocatoria matemática IX año curso 2015I convocatoria matemática IX año curso 2015
I convocatoria matemática IX año curso 2015Jorge Umaña
 

En vedette (20)

Cómo guardar las marcas de un mapa de google en un archivo xml y acceder a es...
Cómo guardar las marcas de un mapa de google en un archivo xml y acceder a es...Cómo guardar las marcas de un mapa de google en un archivo xml y acceder a es...
Cómo guardar las marcas de un mapa de google en un archivo xml y acceder a es...
 
Module1 exercices comptabilité
Module1 exercices comptabilitéModule1 exercices comptabilité
Module1 exercices comptabilité
 
Ch01 e
Ch01 eCh01 e
Ch01 e
 
Groupe cardinal - communique de presse - inauguration Siège Manitowoc à Lyon
Groupe cardinal - communique de presse - inauguration Siège Manitowoc à LyonGroupe cardinal - communique de presse - inauguration Siège Manitowoc à Lyon
Groupe cardinal - communique de presse - inauguration Siège Manitowoc à Lyon
 
Classement
ClassementClassement
Classement
 
Le petit ours polaire de novossibirsk
Le petit ours polaire de novossibirskLe petit ours polaire de novossibirsk
Le petit ours polaire de novossibirsk
 
Rapport insitutionnel 2013 : bilan & perspectives
Rapport insitutionnel 2013 : bilan & perspectivesRapport insitutionnel 2013 : bilan & perspectives
Rapport insitutionnel 2013 : bilan & perspectives
 
Quelque part dans la ville
Quelque part dans la villeQuelque part dans la ville
Quelque part dans la ville
 
Extrait du Livre exposition Lucien Morisset Musée de Saint-Paul-de Vence Je...
Extrait du Livre exposition Lucien Morisset Musée de Saint-Paul-de Vence   Je...Extrait du Livre exposition Lucien Morisset Musée de Saint-Paul-de Vence   Je...
Extrait du Livre exposition Lucien Morisset Musée de Saint-Paul-de Vence Je...
 
Terremoto
TerremotoTerremoto
Terremoto
 
Entre tu y el
Entre tu y elEntre tu y el
Entre tu y el
 
Xxxiv mismontes orientales 2012
Xxxiv mismontes orientales 2012Xxxiv mismontes orientales 2012
Xxxiv mismontes orientales 2012
 
L'expansion de l'Occident
L'expansion de l'OccidentL'expansion de l'Occident
L'expansion de l'Occident
 
Gifs infos argos 24
Gifs   infos argos 24Gifs   infos argos 24
Gifs infos argos 24
 
Miel et canelle
Miel et canelleMiel et canelle
Miel et canelle
 
Una Visita A Granada El Sacromonte
Una Visita A Granada   El SacromonteUna Visita A Granada   El Sacromonte
Una Visita A Granada El Sacromonte
 
Internet[1]
Internet[1]Internet[1]
Internet[1]
 
Actividad 1 herramientas de la web 2
Actividad 1 herramientas de la web 2Actividad 1 herramientas de la web 2
Actividad 1 herramientas de la web 2
 
Classement général provisoire Pronodix
Classement général provisoire PronodixClassement général provisoire Pronodix
Classement général provisoire Pronodix
 
I convocatoria matemática IX año curso 2015
I convocatoria matemática IX año curso 2015I convocatoria matemática IX año curso 2015
I convocatoria matemática IX año curso 2015
 

Similaire à My droid

Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Saber LAJILI
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Sabeur LAJILI
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Sabeur LAJILI
 
Projet de fin d étude (1)
Projet de fin d étude (1)Projet de fin d étude (1)
Projet de fin d étude (1)Sanaa Guissar
 
Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)Farouk Mezghich
 
Page blanchea lapplicationwindows8
Page blanchea lapplicationwindows8Page blanchea lapplicationwindows8
Page blanchea lapplicationwindows8SOAT
 
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2Mathias Seguy
 
Ch2. Développement mobile
Ch2. Développement mobileCh2. Développement mobile
Ch2. Développement mobileHaifa Chorfi
 
chapitre-2-les-activites.pdf
chapitre-2-les-activites.pdfchapitre-2-les-activites.pdf
chapitre-2-les-activites.pdfolfaharrabi2
 
chapitre-2-les-activites.pdf
chapitre-2-les-activites.pdfchapitre-2-les-activites.pdf
chapitre-2-les-activites.pdfferiel53
 
React redux-tutoriel-1
React redux-tutoriel-1React redux-tutoriel-1
React redux-tutoriel-1Sem Koto
 
React redux-tutoriel-1
React redux-tutoriel-1React redux-tutoriel-1
React redux-tutoriel-1Sem Koto
 

Similaire à My droid (20)

Cours 1 Android
Cours 1 AndroidCours 1 Android
Cours 1 Android
 
Poo
PooPoo
Poo
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015
 
Projet de fin d étude (1)
Projet de fin d étude (1)Projet de fin d étude (1)
Projet de fin d étude (1)
 
Chap android
Chap androidChap android
Chap android
 
Conception d'un Extranet
Conception d'un ExtranetConception d'un Extranet
Conception d'un Extranet
 
Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)
 
Page blanchea lapplicationwindows8
Page blanchea lapplicationwindows8Page blanchea lapplicationwindows8
Page blanchea lapplicationwindows8
 
DART.pptx
DART.pptxDART.pptx
DART.pptx
 
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2
 
Opencourrier
OpencourrierOpencourrier
Opencourrier
 
Ch2. Développement mobile
Ch2. Développement mobileCh2. Développement mobile
Ch2. Développement mobile
 
chapitre-2-les-activites.pdf
chapitre-2-les-activites.pdfchapitre-2-les-activites.pdf
chapitre-2-les-activites.pdf
 
chapitre-2-les-activites.pdf
chapitre-2-les-activites.pdfchapitre-2-les-activites.pdf
chapitre-2-les-activites.pdf
 
React redux-tutoriel-1
React redux-tutoriel-1React redux-tutoriel-1
React redux-tutoriel-1
 
React redux-tutoriel-1
React redux-tutoriel-1React redux-tutoriel-1
React redux-tutoriel-1
 
Développement Sous Android
Développement Sous AndroidDéveloppement Sous Android
Développement Sous Android
 
Les Activités.pdf
Les Activités.pdfLes Activités.pdf
Les Activités.pdf
 

Plus de Wiki Info Systeme

Plus de Wiki Info Systeme (15)

Introduction à l’infographie
Introduction à l’infographieIntroduction à l’infographie
Introduction à l’infographie
 
Comment gerer votre identite numerique
Comment gerer votre identite numeriqueComment gerer votre identite numerique
Comment gerer votre identite numerique
 
Présentation du thème
Présentation du thèmePrésentation du thème
Présentation du thème
 
Identité numérique
Identité numériqueIdentité numérique
Identité numérique
 
Les Widgets
Les WidgetsLes Widgets
Les Widgets
 
Hello droid
Hello droidHello droid
Hello droid
 
E learning
E learningE learning
E learning
 
Les Classe en Java
Les Classe en JavaLes Classe en Java
Les Classe en Java
 
Les tableaux en Java
Les tableaux en JavaLes tableaux en Java
Les tableaux en Java
 
Introduction a Java
Introduction a JavaIntroduction a Java
Introduction a Java
 
Premier manuel d'informatique
Premier manuel d'informatiquePremier manuel d'informatique
Premier manuel d'informatique
 
Cahier d'exercices-Dactylographie
Cahier d'exercices-DactylographieCahier d'exercices-Dactylographie
Cahier d'exercices-Dactylographie
 
Exercice sur les classes en Java
Exercice sur les classes en JavaExercice sur les classes en Java
Exercice sur les classes en Java
 
Crystal Report avec Microsoft Visual Studio 2010
Crystal Report avec Microsoft Visual Studio 2010Crystal Report avec Microsoft Visual Studio 2010
Crystal Report avec Microsoft Visual Studio 2010
 
Cours de JAVA de base
Cours de JAVA  de baseCours de JAVA  de base
Cours de JAVA de base
 

Dernier

Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSKennel
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfRiDaHAziz
 
Cours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationCours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationpapediallo3
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSKennel
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsRajiAbdelghani
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSKennel
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre françaisTxaruka
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfRiDaHAziz
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 37
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Alain Marois
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 37
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Gilles Le Page
 

Dernier (20)

Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdf
 
Cours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationCours de Management des Systèmes d'information
Cours de Management des Systèmes d'information
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 temps
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre français
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdf
 
DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024
 

My droid

  • 1. DRO IDQUELQUES NOTIONS EN PROGRAMMATION POUR ANDROID © 2014 WIKI INFO SYSTÈME TOUS DROITS RÉSERVÉS
  • 2. PLAN • Les principaux composants Android • Intent • View • Activity • Service • ContentProvider • BroadcastReceiver • Cycle de vie d’une activité • Etats d’une activité
  • 3. INTRODUCTION • Le développement sur Android s’appuie sur des classes importantes du framework. Ces classes sont, en quelque sorte, les « briques » élémentaires sur lesquelles vos futures applications reposeront. Elles sont tellement indispensables qu’il est tout simplement impossible de construire votre application sans passer par au moins l’une d’elles. Cette partie tente de décrire de façon globale et succincte ces différentes « briques ».
  • 4. INTENT • Les Intents sont des objets permettant de faire passer des messages contenant de l’information entre composants principaux. La notion d’Intent peut être vue comme une demande de démarrage d’un autre composant, d’une action à effectuer. La raison d’être des Intents provient du modèle de sécurité d’Android. Chaque application est en effet sandboxée. Cela veut dire qu’une application A ne peut accéder aux données d’une application B. Grâce aux Intents, les applications ont la possibilité de fournir leurs services ou données si elles le souhaite.
  • 5. VIEW • Les Views sont les composants de base de l’interface graphique. Elles permettent de construire l’interface utilisateur. Les widgets (nom donné à des composants graphiques « avancés » : une barre de progression, par exemple, est un widget), composants graphiques ou autres layout (composant permettant de placer les différents composants graphiques à l’écran) héritent en fait de cette classe élémentaire. Le rendu/dessin d’une View s’effectue par l’intermédiaire d’un Canvas (qu’on peut assimiler à une feuille transparente sur laquelle on dessine avec un crayon (Paint). Pour finir, la vue est le principal composant qui s’occupe de gérer les actions utilisateurs (appui sur l’écran, sur le clavier, etc.). • Lorsqu’on créé une application à l’aide du framework Android, le développeur doit hériter d’au moins une des 4 classes brièvement décrites dans les diaporamas qui suivent. • Les vues héritent de la classe View. On les trouve dans le package android.view.View.
  • 6. ACTIVITY • Le concept d’Activity repose sur la notion d’interaction utilisateur. Une Activity représente la fenêtre ou tout simplement l’écran qui sera affiché à l’utilisateur. Elle permet également de gérer des fonctionnalités telles que l’appui sur la touche [MENU] ou l’affichage de messages d’alerte (Toast). Faites bien attention à ne pas confondre la notion d’Activity et de View. Il est évident que faire la différence entre ces deux notions est difficile à ce stade de compréhension du framework. Rappelez vous que vos premières réalisations vous permettront de dissocier les deux.
  • 7. SERVICE • Un Service est en fait un programme tournant en tâche de fond et n’ayant pas d’interface graphique (ce qui n’est pas réalisable, à l’heure où j’écris ces lignes, sur iPhone OS). L’exemple commun illustrant au mieux cette notion est celui du lecteur mp3. Un lecteur mp3 ne nécessite pas, pour la plupart du temps, d’interface graphique et doit tourner en tâche de fond laissant la possibilité aux autres applications de travailler/s’exécuter librement.
  • 8. CONTENTPROVIDER • Les ContentProvider sont, comme l’exprime leurs noms, des gestionnaires de données. Ils permettent de partager l’information entre applications. Imaginons une application qui permette de conserver les cartes de visite virtuelles d’un ensemble de personnes. Ces cartes de visite contiennent généralement le nom, le prénom et un moyen de contact de la personne. Un tel programme peut être créé sous forme de ContentProvider ce qui lui permettra de fournir à d’autres applications présentes sur le système les informations sur une personne. Une application tierce d’envoi de courriel peut par exemple interroger ce ContentProvider afin d’obtenir l’adresse courriel d’un contact.
  • 9. BROADCAST RECEIVER • Un BroadcastReceiver est une application qui est à « l’écoute » des autres applications. Ce type d’application tente de répondre aux Intents qui lui sont adressés. Il ne fait donc rien d’autres que d’être à l’écoute des Intents envoyés par d’autres composants applicatifs.
  • 10. CYCLE DE VIE D’UNE ACTIVITÉ (ACTIVITY) • Une activité n'a pas de contrôle direct sur son propre état (et par conséquent vous non plus en tant que programmeur), il s'agit plutôt d'un cycle rythmé par les interactions avec le système et d'autres applications. Voici un schéma qui présente ce que l'on appelle le cycle de vie d'une activité, c'est-à-dire qu'il indique les étapes que va traverser notre activité pendant sa vie, de sa naissance à sa mort. Vous verrez que chaque étape du cycle est représentée par une méthode. Nous verrons comment utiliser ces méthodes en temps voulu.
  • 11.
  • 12. Tableau complet du cycle de Vie des activités
  • 13. • Les activités héritent de la classe Activity. public class MainActivity extends Activity { // instructions; } • Or, la classe Activity hérite de l'interface Context dont le but est de représenter tous les composants d'une application. On les trouve dans le package android.app.Activity. • On surcharge certaines méthodes qui sont appelées par Android pour définir le comportement (même principe que les applets) :  onCreate: lors de la création  onDestroy: lorsque l’activité se termine  onStart: lorsque l’activité démarre ou redémarre  onPause: lorsque l’activité n’est plus en premier plan  onResume: lorsque l’activité revient en premier plan  onStop: lorsque l’activité n’est plus visible  onRestart: lorsque l’activité redevient visible
  • 14. EXEMPLE @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }
  • 15. REMARQUE • Le petit @Override permet d'indiquer que l'on va redéfinir une méthode qui existait auparavant dans la classe parente, ce qui est logique puisque vous saviez déjà qu'une activité avait une méthode void onCreate() et que notre classe héritait de Activity. • L'instruction @Override est facultative. Elle permet au compilateur d'optimiser le bytecode, mais, si elle ne fonctionne pas chez vous, n'insistez pas, supprimez-la.
  • 16. A NOTER • Android se réserve le droit de tuer le processus UNIX d’une activité s’il n’y a plus assez de ressources (mémoire). Les règles sont les suivantes: 1. Une activité en premier plan n’est tuée que si c’est elle qui consomme trop de ressources. 2. Une activité en arrière plan ou non visible peut être tuée. • Lorsqu’une activité a été tuée, si on revient dessus elle est relancée (onCreate). On peut sauvegarder l’état (c’est-à-dire les propriétés) d’une activité (dans onPause) pour le retrouver lorsqu’elle elle est recréée par le paramètre transmis à onCreate.
  • 17. ETATS D’UNE ACTIVITÉ (ACTIVITY) • Quand une application se lance, elle se met tout en haut de ce qu'on appelle la pile d'activités. • Une pile est une structure de données de type « LIFO », c'est-à-dire qu'il n'est possible d'avoir accès qu'à un seul élément de la pile, le tout premier élément, aussi appelé sommet. Quand on ajoute un élément à cette pile, le nouvel élément prendra la première place et deviendra le nouveau sommet. Quand on veut récupérer un élément, ce sera le sommet qui sera récupéré, sorti de la liste et l'objet en deuxième place deviendra le nouveau sommet, comme illustré à la figure suivante.
  • 18.
  • 19. FONCTIONNEMENT • L'activité que voit l'utilisateur est celle qui se trouve au-dessus de la pile. Ainsi, lorsqu'un appel arrive, il se place au sommet de la pile et c'est lui qui s'affiche à la place de votre application, qui n'est plus qu'à la deuxième place. Votre activité ne reviendra qu'à partir du moment où toutes les activités qui se trouvent au-dessus d'elle seront arrêtées et sorties de la pile. On retrouve ainsi le principe expliqué précédemment, on ne peut avoir qu'une application visible en même temps sur le terminal, et ce qui est visible est l'interface graphique de l'activité qui se trouve au sommet de la pile.
  • 20. LES 3 ÉTATS QUI DIFFÉRENCIENT LA VISIBILITÉ D’UNE ACTIVITÉ (ACTIVITY)
  • 21. PRÉPARÉ PAR: ING. DAVID JOSEPH EMAIL: ing.josephdavid@gmail.com © 2014 WIKI INFO SYSTÈME TOUS DROITS RÉSERVÉS