P1 introduction à android

Lilia Sfaxi
Lilia SfaxiDocteur-Ingénieur en Informatique - Assistante à l'INSAT
Développement Android
Cycle de Vie, Composants Principaux, Comportement…
Formation Mobile
27 Aout au 1 Septembre 2015
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 1
ENVIRONNEMENT DE DÉVELOPPEMENT ANDROID
Développement Android
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 2
Android pour le Développement Mobile
•  Android fait partie d’une nouvelle vague de SE conçus pour du HW plus
performant
•  Windows Phone
•  BlackBerry OS
•  Apple iPhone
•  Android se distingue par son offre d’environnement de Dév. Ouvert
•  Basé sur le noyau open source Linux
•  Accès complet aux ressources HW
•  Applications natives ou tierces sont au même niveau
•  Utilisation de la même API
•  Exécution sur le même runtime
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 3
Environnement de Développement Android
Android…
“The first truly open and comprehensive platform for mobile devices, all of
the software to run a mobile phone but without the proprietary obstacles
that have hindered mobile innovation."
Andy Rubin
Cofondateur et ancien CEO de Danger Inc. et du Système d’Exploitation Android Inc.
http://googleblog.blogspot.com/2007/11/wheres-my-gphone.html
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 4
Environnement de Développement Android
Android est:
•  Une combinaison de trois éléments:
1.  Un système d’exploitation open source pour terminaux mobiles
2.  Une plateforme de développement open source pour créer des
applications mobiles
3.  Terminaux, particulièrement téléphones mobiles, qui exécutent
le système d’exploitation Android et les applications mobiles
conçues pour ce système
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 5
Environnement de Développement Android
Distribution des Versions (Avril 2015)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 6
Environnement de Développement Android
https://developer.android.com/about/dashboards/index.html
ARCHITECTURE ANDROID
Développement Android
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 7
Android SW Stack
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 8
Architecture Android
SW Stack (1): Linux Kernel
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 9
Architecture Android
Linux kernel (version 3.4 pour Lollipop 5.1)
•  Offre les services fondamentaux : hardware drivers, process & memory
management, security, network, power management.
•  Offre une couche d’abstraction entre le HW et le reste de la pile logicielle.
SW Stack (2): Android Runtime
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 10
Architecture Android
Android Runtime
•  Incluant les librairies fondamentales et la machine virtuelle ART (Android
RunTime, remplaçant Dalvik officiellement depuis la version Lollipop).
•  Permet l’exécution des application et représente la base du framework applicatif .
SW Stack (3): Libraries
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 11
Architecture Android
Android Libraries
•  Linux kernel Libraries : diverses
librairies fondamentales de C/C++ :
•  Media Framework : lecture audio /
vidéo
•  Surface manager : gestion de
l’affichage
•  Graphics libraries (SGL & OpenGL):
affichage 2D et 3D
•  SQLite pour le support natif des
bases de données
•  SSL & WebKit pour la navigation sur
internet avec le support SSL
SW Stack (4): Applications Framework
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 12
Architecture Android
Applications Framework
•  Fournit les classes qui seront utilisées pour la création d’applications Android.
•  Représente une abstraction pour les accès HW et prend en charge la gestion de
l’interface utilisateur et des ressources de l’application.
SW Stack (5): Applications
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 13
Architecture Android
Applications
•  Toutes les applications, native ou tierces, sont basées sur la même API.
•  La couche application s’ exécute sur un runtime Android en utilisant les classes
et services de fournis par la couche « Applications Framework ».
CONDUITE D’UN PROJET D’APP. ANDROID
Développement Android
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 14
Point de Départ: IHM & UX
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 15
Conduite d’un Projet D’App. Android
Voir http://developer.android.com/training/design-navigation/wireframing.html
Étape 1: Planifier la Navigation entre Screens
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 16
Conduite d’un Projet D’App. Android
Étape 2: Choisir les Patrons de Navigation
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 17
Conduite d’un Projet D’App. Android
Étape 4: Définir les Screens (Wireframing)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 18
Conduite d’un Projet D’App. Android
Étape 5: Raffiner chaque Screen
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 19
Conduite d’un Projet D’App. Android
Attention: Il faut respecter les patrons de conception Android!
Étape 6: Il Suffit de Coder…
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 20
Conduite d’un Projet D’App. Android
Liens Utiles
http://developer.android.com
http://www.android-app-patterns.com/
http://www.androidviews.net
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 21
Conduite d’un Projet D’App. Android
STRUCTURE D’UNE APPLICATION ANDROID
Développement Android
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 22
Environnement de Développement
•  Langages De Développement :
•  Lang. Java avec Android SDK (Software Dev. Kit)
•  Lang. C++ avec Android NDK (Native Dev. Kit)
•  Utilisation d'un IDE est recommandée
•  Android Studio (IntelliJ-IDEA adapté pour Android)
•  Eclipse (avec le plugin ADT)
•  Autres IDE peuvent être utilisés tels que NetBeans
•  Un projet d’une application Android possède une arborescence
spécifique.
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 23
Structure d’une Application Android
Arborescence d’un Projet
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 24
Structure d’une Application Android
Bibliothèques du module principal
Tests de votre application
Code source Java des applications
Ressources utilisées par l’application
Images (PNG, JPEG ou GIF) et
fichiers XML décrivantles
formes
Fichiers XML représentant l’interface
d’une page ou d’une partie de page de
votre application
Fichiers XML décrivant les menus
Icônes de lancement de l’application
(classés par résolution d’écran)
Dossier contenant les fichiers décrivant des
valeurs utilisées dans l’application.
Ex : strings.xml pour les chaînes,
arrays.xml pour les tableaux…
Fichier de contrôle de l’application,
décrivant sa nature , ses composants
et les permissions associées
Résolutions, Densités, Différents Écrans
•  Iconographie sous Android
•  http://developer.android.com/design/style/iconography.html
•  Android et les icônes, mdpi, hdpi, xhdpi, xxhdpi
•  http://labs.excilys.com/2013/07/18/android-et-les-icones-mdpi-
hdpi-xhdpi-xxhdpi/
•  Support de plusieurs écrans sous Android
•  http://developer.android.com/guide/practices/
screens_support.html
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 25
Structure d’une Application Android
CYCLE DE VIE D’UNE APPLICATION ANDROID
Développement Android
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 26
Cycle de Vie
•  Les composants (vues) d’une application ont un cycle de vie
•  Un début quand Android les instancie pour répondre aux Intents
•  Une fin quand les instances sont détruites
•  Entre les deux, où ils peuvent être:
•  Actifs ou inactifs
•  Visibles ou invisibles
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 27
Cycle de Vie d’une Application Android
Vie d’une Application:
Actif/Inactif
Visible / Invisible
Début Fin
Pile d’Activités
•  Les activités dans une application sont gérées sous forme de Pile
•  Quand une nouvelle activité démarre, elle est placée en haut de la pile
et devient l’activité en exécution
•  L’ activité précédente reste en dessous dans la pile
•  Elle ne revient au premier plan que si la nouvelle activité est fermée
•  Si l’utilisateur clique sur le bouton Retour du téléphone l’activité
suivante dans la pile devient active
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 28
Cycle de Vie d’une Application Android
Pile d’Activités
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 29
Cycle de Vie d’une Application Android
États d’une Activité
•  Active ou en Exécution
•  Elle est au premier plan de l’écran (donc en haut de la pile)
•  C’est l’activité ciblée par les actions de l’utilisateur
•  En Pause
•  A perdu le focus, mais est encore partiellement visible
•  Une autre activité est en haut de la pile, mais elle est soit
transparente, soit ne couvre pas tout l’écran
•  Arrêtée
•  Complètement recouverte par une autre activité
•  Ses informations sont encore chargées, mais elle n’est plus visible
•  Peut être tuée par le système si besoin de mémoire
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 30
Cycle de Vie d’une Application Android
Évènements du Cycle de Vie d’une Activité
•  Quand une activité passe d’un état à un autre, le framework
Android appelle les méthodes de transition correspondantes
(pattern IoC) :
•  void onCreate(Bundle savedInstanceState) : obligatoire
•  void onStart()
•  void onRestart()
•  void onResume()
•  void onPause() : recommandée
•  void onStop()
•  void onDestroy()
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 31
Cycle de Vie d’une Application Android
Évènements du Cycle de Vie d’une Activité
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 32
Cycle de Vie d’une Application Android
Méthodes de Transition (1/6): onCreate
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 33
Cycle de Vie d’une Application Android
onCreate
•  Appelée à la création d’une activité
•  Initialisation de tous les éléments
•  Un bundle est passé à cette méthode, contenant l’état précédent de l’activité
•  Toujours suivie de onStart
Méthodes de Transition (2/6): onStart / onRestart
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 34
Cycle de Vie d’une Application Android
onStart
•  Appelée juste avant que l’activité ne devienne visible,
•  Suivie de
•  onResume si l’activité revient en premier plan
•  onStop si l’activité est cachée
onRestart
•  Appelée quand l’activité va redémarrer après avoir été stoppée
•  Toujours suivie de onStart
Méthodes de Transition (3/6): onResume
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 35
Cycle de Vie d’une Application Android
onResume
•  Appelée juste avant que l’activité ne commence interagir avec l’utilisateur
•  A ce point, l’activité est en haut de la pile
•  Toujours suivie de onPause
Méthodes de Transition (4/6): onPause
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 36
Cycle de Vie d’une Application Android
onPause
•  Appelée quand le système va démarrer une autre activité
•  Utilisée typiquement pour
•  Consigner les données non sauvegardées
•  Arrêtées les animations ou tout ce qui consomme de la mémoire...
•  Ne doit pas consommer beaucoup de temps, car l’activité suivante ne va démarrer que si
cette méthode retourne
•  Suivie de :
•  onResume si l’activité est rechargée en premier plan
•  onStop si l’activité devient invisible
•  Dans cet état, l’activité peut être tuée par le système
Méthodes de Transition (5/6): onStop
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 37
Cycle de Vie d’une Application Android
onStop
•  Appelée quand l’activité n’est plus visible à l’utilisateur
•  Peut arriver si:
•  L’activité est détruite
•  Une autre activité a repris son exécution et l’a recouverte
•  Suivie par:
•  onRestart si l’activité recommence à interagir avec l’utilisateur
•  onDestroy si l’activité va disparaître
•  Dans cet état, l’activité peut être tuée par le système
Méthodes de Transition (6/6): onDestroy
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 38
Cycle de Vie d’une Application Android
onDestroy
•  Appelée quand l’activité est détruite
•  Dernier appel que l’activité va recevoir
•  Peut intervenir si:
•  L’ activité se termine (appel de finish)
•  Le système détruit temporairement cette instance de l’activité pour gagner de l’espace
•  On peut distinguer entre ces deux scénarios avec la méthode isFinishing()
•  Dans cet état, l’activité peut être tuée par le système
Complément d’Information
•  Le site http://developer.android.com
•  Propose un exemple plus détaillé sur le LifeCycle avec plusieurs
activités. A tester chez vous.
•  Page LifeCycle :
•  http://developer.android.com/training/basics/activity-lifecycle/index.html
•  Lien vers le code source :
•  http://developer.android.com/shareables/training/ActivityLifecycle.zip
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 39
Cycle de Vie d’une Application Android
ÉLÉMENTS DE BASE D’UNE APPLICATION ANDROID
Développement Android
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 40
Activity (Rappel)
•  Une Activity est un composant d'application
•  Fournit un écran avec lequel les utilisateurs peuvent interagir avec
l’application dans le but de faire quelque chose
•  Téléphoner, prendre une photo, envoyez un e-mail ...
•  Chaque activity est associée à une fenêtre qui représente l’interface
utilisateur
•  La fenêtre remplit généralement l'écran,
•  Peut être plus petite que l'écran et le flouter au-dessus des autres
fenêtres.
•  L’ enchaînement des activités (fenêtres) donne une application
•  Utilisation des intents
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 41
Éléments de Base d’une Application Android
Activity (Rappel)
•  Classe qui hérite de Activity
•  Implémente obligatoirement la méthode onCreate()
•  Doit être déclarée dans le fichier manifest.xml
•  Associée à un ou plusieurs fichiers layout
•  Fichier XML qui décrit les composants graphiques de l’interface ainsi que
leurs dispositions
•  Il est aussi possible de créer des éléments graphiques dynamiquement, par
programmation (@Runtime)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 42
Éléments de Base d’une Application Android
Disposition des Éléments Graphiques
•  Layout XML
•  Fichier de spécification des composants graphiques d’une application
(widgets)e t de leurs conteneurs (layout) décrit en XML
•  View
•  Classe de base pour la création des interfaces graphiques
•  Classe mère de tous les widgets utilisés pour créer des composants
graphiques interactifs (boutons, champs de texte, de saisie…)
•  Il est possible d’ajouter des vues:
•  @Runtime: dans le code Java de l’activité
•  Statiquement: dans le code XML du layout
•  ViewGroup
•  Classe de base pour tous les Layouts (dispositions): conteneurs invisibles
rassemblant plusieurs Views ou ViewGroup
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 43
Éléments de Base d’une Application Android
Intents
•  Un Intent : Un message asynchrone qui permet à un composant d'une
application de demander une fonctionnalité à partir d'un autre
composant Android.
•  L’ autre composant peut appartenir à :
•  La même application
•  Une application tierce
•  Au framework Android
•  Exemple : Une activity peut démarrer une autre application pour
prendre une photo
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 44
Éléments de Base d’une Application Android
Enchaînement des Activités via les Intents
•  On peut démarrer une autre activity via la méthode startActivity
•  Prend en argument un intent qui décrit l’activity qu’on souhaite démarrer
//code java, dans l'activité appelante
Intent myIntent = new Intent
(this, NewActivity.class);
myIntent.putExtra("cle", "valeur");
startActivity(myIntent);
•  Pour récupérer le contenu des variable depuis l’Intent :
//code java, dans l'activity appelée
getIntent().getStringExtra("cle")
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 45
Éléments de Base d’une Application Android
Fragments
•  Un fragment représente le comportement d'une partie d'une
vue dans une Activity
•  Il possède son propre cycle de vie, mais est intiment lié à
l'activité qui le contient (Expl : si l’activité est en pause à
fragment en pause)
•  Doit obligatoirement être lié à une activity, mais peut être
réutilisé par une autre
•  Un fragment peut être ajouté à la BackStack
•  Disponible depuis Android 3.0 (API 11)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 46
Éléments de Base d’une Application Android
Fragments
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 47
Éléments de Base d’une Application Android
Autres Composants Android
•  Une application Android est formée d’un ensemble de composants
déclarés dans le Manifest
•  Un composant peut être:
•  Activity
•  Broadcast Receiver
•  Content Provider
•  Service
•  A voir ultérieurement…
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 48
Éléments de Base d’une Application Android
1 sur 48

Recommandé

P5 stockage par
P5 stockageP5 stockage
P5 stockageLilia Sfaxi
5.7K vues27 diapositives
P4 intents par
P4 intentsP4 intents
P4 intentsLilia Sfaxi
5.8K vues19 diapositives
P3 listes et elements graphiques avancés par
P3 listes et elements graphiques avancésP3 listes et elements graphiques avancés
P3 listes et elements graphiques avancésLilia Sfaxi
6.6K vues52 diapositives
P2 éléments graphiques android par
P2 éléments graphiques androidP2 éléments graphiques android
P2 éléments graphiques androidLilia Sfaxi
7K vues24 diapositives
Chp5 - Applications Android par
Chp5 - Applications AndroidChp5 - Applications Android
Chp5 - Applications AndroidLilia Sfaxi
6.8K vues68 diapositives
Android-Tp3: fragments et menus par
Android-Tp3: fragments et menusAndroid-Tp3: fragments et menus
Android-Tp3: fragments et menusLilia Sfaxi
6.4K vues14 diapositives

Contenu connexe

Tendances

Programmation sous Android par
Programmation sous AndroidProgrammation sous Android
Programmation sous AndroidOlivier Le Goaër
131.5K vues156 diapositives
Android-Tp2: liste et adaptateurs par
Android-Tp2: liste et adaptateursAndroid-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursLilia Sfaxi
7.3K vues12 diapositives
Support Java Avancé Troisième Partie par
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième PartieENSET, Université Hassan II Casablanca
26.4K vues200 diapositives
Chp3 - Architecture Logicielle des Applications Mobiles par
Chp3 - Architecture Logicielle des Applications MobilesChp3 - Architecture Logicielle des Applications Mobiles
Chp3 - Architecture Logicielle des Applications MobilesLilia Sfaxi
15.3K vues24 diapositives
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate par
Site JEE de ECommerce  Basé sur Spring IOC MVC Security JPA HibernateSite JEE de ECommerce  Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA HibernateENSET, Université Hassan II Casablanca
43.5K vues158 diapositives
Développement Android par
Développement AndroidDéveloppement Android
Développement AndroidFranck SIMON
27.7K vues528 diapositives

Tendances(20)

Android-Tp2: liste et adaptateurs par Lilia Sfaxi
Android-Tp2: liste et adaptateursAndroid-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateurs
Lilia Sfaxi7.3K vues
Chp3 - Architecture Logicielle des Applications Mobiles par Lilia Sfaxi
Chp3 - Architecture Logicielle des Applications MobilesChp3 - Architecture Logicielle des Applications Mobiles
Chp3 - Architecture Logicielle des Applications Mobiles
Lilia Sfaxi15.3K vues
Développement Android par Franck SIMON
Développement AndroidDéveloppement Android
Développement Android
Franck SIMON27.7K vues
Chp6 - Développement iOS par Lilia Sfaxi
Chp6 - Développement iOSChp6 - Développement iOS
Chp6 - Développement iOS
Lilia Sfaxi4.6K vues
Android-Tp5 : web services par Lilia Sfaxi
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web services
Lilia Sfaxi5.6K vues
Android-Tp1: éléments graphiques de base et intents par Lilia Sfaxi
Android-Tp1: éléments graphiques de base et intentsAndroid-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intents
Lilia Sfaxi6.8K vues
BI : Analyse des Données avec Mondrian par Lilia Sfaxi
BI : Analyse des Données avec Mondrian BI : Analyse des Données avec Mondrian
BI : Analyse des Données avec Mondrian
Lilia Sfaxi9.7K vues
Reporting avec JasperServer & iReport par Lilia Sfaxi
Reporting avec JasperServer & iReportReporting avec JasperServer & iReport
Reporting avec JasperServer & iReport
Lilia Sfaxi11.5K vues

Similaire à P1 introduction à android

cours-android.pdf par
cours-android.pdfcours-android.pdf
cours-android.pdfmed_univ78
8 vues101 diapositives
Architecture android par
Architecture androidArchitecture android
Architecture androidOCTO Technology
3.5K vues28 diapositives
Apple - WWDC 2018 par
Apple - WWDC 2018Apple - WWDC 2018
Apple - WWDC 2018Maxime Eglem
93 vues25 diapositives
Tech Conf n°1 - Développement natif d'applications mobiles par
Tech Conf n°1 - Développement natif d'applications mobilesTech Conf n°1 - Développement natif d'applications mobiles
Tech Conf n°1 - Développement natif d'applications mobilesMichael Laguerre
533 vues51 diapositives
Android introvf par
Android introvfAndroid introvf
Android introvfAnne-Marie Pinna-Dery
3K vues48 diapositives

Similaire à P1 introduction à android(20)

Tech Conf n°1 - Développement natif d'applications mobiles par Michael Laguerre
Tech Conf n°1 - Développement natif d'applications mobilesTech Conf n°1 - Développement natif d'applications mobiles
Tech Conf n°1 - Développement natif d'applications mobiles
Michael Laguerre533 vues
Tech conf1 développement_natif_applications_mobiles par TelecomValley
Tech conf1 développement_natif_applications_mobilesTech conf1 développement_natif_applications_mobiles
Tech conf1 développement_natif_applications_mobiles
TelecomValley817 vues
Ch1. Développement mobile par Haifa Chorfi
Ch1. Développement mobileCh1. Développement mobile
Ch1. Développement mobile
Haifa Chorfi160 vues
FelixDroid: Application de gestion du framework Felix pour Android par OSGi User Group France
FelixDroid: Application de gestion du framework Felix pour AndroidFelixDroid: Application de gestion du framework Felix pour Android
FelixDroid: Application de gestion du framework Felix pour Android
Introduction_Android_-_Complet.pdf par med_univ78
Introduction_Android_-_Complet.pdfIntroduction_Android_-_Complet.pdf
Introduction_Android_-_Complet.pdf
med_univ788 vues
Codedarmor 2012 - 03/04 - Android, What else? par codedarmor
Codedarmor 2012 - 03/04 - Android, What else?Codedarmor 2012 - 03/04 - Android, What else?
Codedarmor 2012 - 03/04 - Android, What else?
codedarmor419 vues
Mobile-Chp4 côté serveur par Lilia Sfaxi
Mobile-Chp4 côté serveurMobile-Chp4 côté serveur
Mobile-Chp4 côté serveur
Lilia Sfaxi3.4K vues

Plus de Lilia Sfaxi

chp1-Intro à l'urbanisation des SI.pdf par
chp1-Intro à l'urbanisation des SI.pdfchp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfLilia Sfaxi
431 vues58 diapositives
Plan d'études_INSAT_2022_2023.pdf par
Plan d'études_INSAT_2022_2023.pdfPlan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfLilia Sfaxi
1.8K vues28 diapositives
Lab3-DB_Neo4j par
Lab3-DB_Neo4jLab3-DB_Neo4j
Lab3-DB_Neo4jLilia Sfaxi
1.8K vues8 diapositives
Lab2-DB-Mongodb par
Lab2-DB-MongodbLab2-DB-Mongodb
Lab2-DB-MongodbLilia Sfaxi
989 vues4 diapositives
Lab1-DB-Cassandra par
Lab1-DB-CassandraLab1-DB-Cassandra
Lab1-DB-CassandraLilia Sfaxi
957 vues4 diapositives
TP2-UML-Correction par
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
10.3K vues6 diapositives

Plus de Lilia Sfaxi(20)

chp1-Intro à l'urbanisation des SI.pdf par Lilia Sfaxi
chp1-Intro à l'urbanisation des SI.pdfchp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdf
Lilia Sfaxi431 vues
Plan d'études_INSAT_2022_2023.pdf par Lilia Sfaxi
Plan d'études_INSAT_2022_2023.pdfPlan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdf
Lilia Sfaxi1.8K vues
TP2-UML-Correction par Lilia Sfaxi
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
Lilia Sfaxi10.3K vues
TP1-UML-Correction par Lilia Sfaxi
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-Correction
Lilia Sfaxi1.8K vues
TD3-UML-Correction par Lilia Sfaxi
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-Correction
Lilia Sfaxi1.2K vues
TD2 - UML - Correction par Lilia Sfaxi
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
Lilia Sfaxi22.1K vues
TD1-UML-correction par Lilia Sfaxi
TD1-UML-correctionTD1-UML-correction
TD1-UML-correction
Lilia Sfaxi1.6K vues
Android - Tp1 - installation et démarrage par Lilia Sfaxi
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrage
Lilia Sfaxi185 vues
Android - Tp2 - Elements graphiques par Lilia Sfaxi
Android - Tp2 - Elements graphiques Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques
Lilia Sfaxi55 vues
Android - Tp3 - intents par Lilia Sfaxi
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intents
Lilia Sfaxi159 vues
Android - TPBonus - web services par Lilia Sfaxi
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web services
Lilia Sfaxi88 vues

P1 introduction à android

  • 1. Développement Android Cycle de Vie, Composants Principaux, Comportement… Formation Mobile 27 Aout au 1 Septembre 2015 Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 1
  • 2. ENVIRONNEMENT DE DÉVELOPPEMENT ANDROID Développement Android Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 2
  • 3. Android pour le Développement Mobile •  Android fait partie d’une nouvelle vague de SE conçus pour du HW plus performant •  Windows Phone •  BlackBerry OS •  Apple iPhone •  Android se distingue par son offre d’environnement de Dév. Ouvert •  Basé sur le noyau open source Linux •  Accès complet aux ressources HW •  Applications natives ou tierces sont au même niveau •  Utilisation de la même API •  Exécution sur le même runtime Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 3 Environnement de Développement Android
  • 4. Android… “The first truly open and comprehensive platform for mobile devices, all of the software to run a mobile phone but without the proprietary obstacles that have hindered mobile innovation." Andy Rubin Cofondateur et ancien CEO de Danger Inc. et du Système d’Exploitation Android Inc. http://googleblog.blogspot.com/2007/11/wheres-my-gphone.html Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 4 Environnement de Développement Android
  • 5. Android est: •  Une combinaison de trois éléments: 1.  Un système d’exploitation open source pour terminaux mobiles 2.  Une plateforme de développement open source pour créer des applications mobiles 3.  Terminaux, particulièrement téléphones mobiles, qui exécutent le système d’exploitation Android et les applications mobiles conçues pour ce système Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 5 Environnement de Développement Android
  • 6. Distribution des Versions (Avril 2015) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 6 Environnement de Développement Android https://developer.android.com/about/dashboards/index.html
  • 7. ARCHITECTURE ANDROID Développement Android Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 7
  • 8. Android SW Stack Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 8 Architecture Android
  • 9. SW Stack (1): Linux Kernel Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 9 Architecture Android Linux kernel (version 3.4 pour Lollipop 5.1) •  Offre les services fondamentaux : hardware drivers, process & memory management, security, network, power management. •  Offre une couche d’abstraction entre le HW et le reste de la pile logicielle.
  • 10. SW Stack (2): Android Runtime Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 10 Architecture Android Android Runtime •  Incluant les librairies fondamentales et la machine virtuelle ART (Android RunTime, remplaçant Dalvik officiellement depuis la version Lollipop). •  Permet l’exécution des application et représente la base du framework applicatif .
  • 11. SW Stack (3): Libraries Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 11 Architecture Android Android Libraries •  Linux kernel Libraries : diverses librairies fondamentales de C/C++ : •  Media Framework : lecture audio / vidéo •  Surface manager : gestion de l’affichage •  Graphics libraries (SGL & OpenGL): affichage 2D et 3D •  SQLite pour le support natif des bases de données •  SSL & WebKit pour la navigation sur internet avec le support SSL
  • 12. SW Stack (4): Applications Framework Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 12 Architecture Android Applications Framework •  Fournit les classes qui seront utilisées pour la création d’applications Android. •  Représente une abstraction pour les accès HW et prend en charge la gestion de l’interface utilisateur et des ressources de l’application.
  • 13. SW Stack (5): Applications Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 13 Architecture Android Applications •  Toutes les applications, native ou tierces, sont basées sur la même API. •  La couche application s’ exécute sur un runtime Android en utilisant les classes et services de fournis par la couche « Applications Framework ».
  • 14. CONDUITE D’UN PROJET D’APP. ANDROID Développement Android Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 14
  • 15. Point de Départ: IHM & UX Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 15 Conduite d’un Projet D’App. Android Voir http://developer.android.com/training/design-navigation/wireframing.html
  • 16. Étape 1: Planifier la Navigation entre Screens Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 16 Conduite d’un Projet D’App. Android
  • 17. Étape 2: Choisir les Patrons de Navigation Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 17 Conduite d’un Projet D’App. Android
  • 18. Étape 4: Définir les Screens (Wireframing) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 18 Conduite d’un Projet D’App. Android
  • 19. Étape 5: Raffiner chaque Screen Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 19 Conduite d’un Projet D’App. Android Attention: Il faut respecter les patrons de conception Android!
  • 20. Étape 6: Il Suffit de Coder… Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 20 Conduite d’un Projet D’App. Android
  • 21. Liens Utiles http://developer.android.com http://www.android-app-patterns.com/ http://www.androidviews.net Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 21 Conduite d’un Projet D’App. Android
  • 22. STRUCTURE D’UNE APPLICATION ANDROID Développement Android Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 22
  • 23. Environnement de Développement •  Langages De Développement : •  Lang. Java avec Android SDK (Software Dev. Kit) •  Lang. C++ avec Android NDK (Native Dev. Kit) •  Utilisation d'un IDE est recommandée •  Android Studio (IntelliJ-IDEA adapté pour Android) •  Eclipse (avec le plugin ADT) •  Autres IDE peuvent être utilisés tels que NetBeans •  Un projet d’une application Android possède une arborescence spécifique. Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 23 Structure d’une Application Android
  • 24. Arborescence d’un Projet Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 24 Structure d’une Application Android Bibliothèques du module principal Tests de votre application Code source Java des applications Ressources utilisées par l’application Images (PNG, JPEG ou GIF) et fichiers XML décrivantles formes Fichiers XML représentant l’interface d’une page ou d’une partie de page de votre application Fichiers XML décrivant les menus Icônes de lancement de l’application (classés par résolution d’écran) Dossier contenant les fichiers décrivant des valeurs utilisées dans l’application. Ex : strings.xml pour les chaînes, arrays.xml pour les tableaux… Fichier de contrôle de l’application, décrivant sa nature , ses composants et les permissions associées
  • 25. Résolutions, Densités, Différents Écrans •  Iconographie sous Android •  http://developer.android.com/design/style/iconography.html •  Android et les icônes, mdpi, hdpi, xhdpi, xxhdpi •  http://labs.excilys.com/2013/07/18/android-et-les-icones-mdpi- hdpi-xhdpi-xxhdpi/ •  Support de plusieurs écrans sous Android •  http://developer.android.com/guide/practices/ screens_support.html Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 25 Structure d’une Application Android
  • 26. CYCLE DE VIE D’UNE APPLICATION ANDROID Développement Android Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 26
  • 27. Cycle de Vie •  Les composants (vues) d’une application ont un cycle de vie •  Un début quand Android les instancie pour répondre aux Intents •  Une fin quand les instances sont détruites •  Entre les deux, où ils peuvent être: •  Actifs ou inactifs •  Visibles ou invisibles Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 27 Cycle de Vie d’une Application Android Vie d’une Application: Actif/Inactif Visible / Invisible Début Fin
  • 28. Pile d’Activités •  Les activités dans une application sont gérées sous forme de Pile •  Quand une nouvelle activité démarre, elle est placée en haut de la pile et devient l’activité en exécution •  L’ activité précédente reste en dessous dans la pile •  Elle ne revient au premier plan que si la nouvelle activité est fermée •  Si l’utilisateur clique sur le bouton Retour du téléphone l’activité suivante dans la pile devient active Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 28 Cycle de Vie d’une Application Android
  • 29. Pile d’Activités Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 29 Cycle de Vie d’une Application Android
  • 30. États d’une Activité •  Active ou en Exécution •  Elle est au premier plan de l’écran (donc en haut de la pile) •  C’est l’activité ciblée par les actions de l’utilisateur •  En Pause •  A perdu le focus, mais est encore partiellement visible •  Une autre activité est en haut de la pile, mais elle est soit transparente, soit ne couvre pas tout l’écran •  Arrêtée •  Complètement recouverte par une autre activité •  Ses informations sont encore chargées, mais elle n’est plus visible •  Peut être tuée par le système si besoin de mémoire Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 30 Cycle de Vie d’une Application Android
  • 31. Évènements du Cycle de Vie d’une Activité •  Quand une activité passe d’un état à un autre, le framework Android appelle les méthodes de transition correspondantes (pattern IoC) : •  void onCreate(Bundle savedInstanceState) : obligatoire •  void onStart() •  void onRestart() •  void onResume() •  void onPause() : recommandée •  void onStop() •  void onDestroy() Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 31 Cycle de Vie d’une Application Android
  • 32. Évènements du Cycle de Vie d’une Activité Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 32 Cycle de Vie d’une Application Android
  • 33. Méthodes de Transition (1/6): onCreate Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 33 Cycle de Vie d’une Application Android onCreate •  Appelée à la création d’une activité •  Initialisation de tous les éléments •  Un bundle est passé à cette méthode, contenant l’état précédent de l’activité •  Toujours suivie de onStart
  • 34. Méthodes de Transition (2/6): onStart / onRestart Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 34 Cycle de Vie d’une Application Android onStart •  Appelée juste avant que l’activité ne devienne visible, •  Suivie de •  onResume si l’activité revient en premier plan •  onStop si l’activité est cachée onRestart •  Appelée quand l’activité va redémarrer après avoir été stoppée •  Toujours suivie de onStart
  • 35. Méthodes de Transition (3/6): onResume Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 35 Cycle de Vie d’une Application Android onResume •  Appelée juste avant que l’activité ne commence interagir avec l’utilisateur •  A ce point, l’activité est en haut de la pile •  Toujours suivie de onPause
  • 36. Méthodes de Transition (4/6): onPause Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 36 Cycle de Vie d’une Application Android onPause •  Appelée quand le système va démarrer une autre activité •  Utilisée typiquement pour •  Consigner les données non sauvegardées •  Arrêtées les animations ou tout ce qui consomme de la mémoire... •  Ne doit pas consommer beaucoup de temps, car l’activité suivante ne va démarrer que si cette méthode retourne •  Suivie de : •  onResume si l’activité est rechargée en premier plan •  onStop si l’activité devient invisible •  Dans cet état, l’activité peut être tuée par le système
  • 37. Méthodes de Transition (5/6): onStop Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 37 Cycle de Vie d’une Application Android onStop •  Appelée quand l’activité n’est plus visible à l’utilisateur •  Peut arriver si: •  L’activité est détruite •  Une autre activité a repris son exécution et l’a recouverte •  Suivie par: •  onRestart si l’activité recommence à interagir avec l’utilisateur •  onDestroy si l’activité va disparaître •  Dans cet état, l’activité peut être tuée par le système
  • 38. Méthodes de Transition (6/6): onDestroy Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 38 Cycle de Vie d’une Application Android onDestroy •  Appelée quand l’activité est détruite •  Dernier appel que l’activité va recevoir •  Peut intervenir si: •  L’ activité se termine (appel de finish) •  Le système détruit temporairement cette instance de l’activité pour gagner de l’espace •  On peut distinguer entre ces deux scénarios avec la méthode isFinishing() •  Dans cet état, l’activité peut être tuée par le système
  • 39. Complément d’Information •  Le site http://developer.android.com •  Propose un exemple plus détaillé sur le LifeCycle avec plusieurs activités. A tester chez vous. •  Page LifeCycle : •  http://developer.android.com/training/basics/activity-lifecycle/index.html •  Lien vers le code source : •  http://developer.android.com/shareables/training/ActivityLifecycle.zip Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 39 Cycle de Vie d’une Application Android
  • 40. ÉLÉMENTS DE BASE D’UNE APPLICATION ANDROID Développement Android Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 40
  • 41. Activity (Rappel) •  Une Activity est un composant d'application •  Fournit un écran avec lequel les utilisateurs peuvent interagir avec l’application dans le but de faire quelque chose •  Téléphoner, prendre une photo, envoyez un e-mail ... •  Chaque activity est associée à une fenêtre qui représente l’interface utilisateur •  La fenêtre remplit généralement l'écran, •  Peut être plus petite que l'écran et le flouter au-dessus des autres fenêtres. •  L’ enchaînement des activités (fenêtres) donne une application •  Utilisation des intents Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 41 Éléments de Base d’une Application Android
  • 42. Activity (Rappel) •  Classe qui hérite de Activity •  Implémente obligatoirement la méthode onCreate() •  Doit être déclarée dans le fichier manifest.xml •  Associée à un ou plusieurs fichiers layout •  Fichier XML qui décrit les composants graphiques de l’interface ainsi que leurs dispositions •  Il est aussi possible de créer des éléments graphiques dynamiquement, par programmation (@Runtime) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 42 Éléments de Base d’une Application Android
  • 43. Disposition des Éléments Graphiques •  Layout XML •  Fichier de spécification des composants graphiques d’une application (widgets)e t de leurs conteneurs (layout) décrit en XML •  View •  Classe de base pour la création des interfaces graphiques •  Classe mère de tous les widgets utilisés pour créer des composants graphiques interactifs (boutons, champs de texte, de saisie…) •  Il est possible d’ajouter des vues: •  @Runtime: dans le code Java de l’activité •  Statiquement: dans le code XML du layout •  ViewGroup •  Classe de base pour tous les Layouts (dispositions): conteneurs invisibles rassemblant plusieurs Views ou ViewGroup Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 43 Éléments de Base d’une Application Android
  • 44. Intents •  Un Intent : Un message asynchrone qui permet à un composant d'une application de demander une fonctionnalité à partir d'un autre composant Android. •  L’ autre composant peut appartenir à : •  La même application •  Une application tierce •  Au framework Android •  Exemple : Une activity peut démarrer une autre application pour prendre une photo Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 44 Éléments de Base d’une Application Android
  • 45. Enchaînement des Activités via les Intents •  On peut démarrer une autre activity via la méthode startActivity •  Prend en argument un intent qui décrit l’activity qu’on souhaite démarrer //code java, dans l'activité appelante Intent myIntent = new Intent (this, NewActivity.class); myIntent.putExtra("cle", "valeur"); startActivity(myIntent); •  Pour récupérer le contenu des variable depuis l’Intent : //code java, dans l'activity appelée getIntent().getStringExtra("cle") Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 45 Éléments de Base d’une Application Android
  • 46. Fragments •  Un fragment représente le comportement d'une partie d'une vue dans une Activity •  Il possède son propre cycle de vie, mais est intiment lié à l'activité qui le contient (Expl : si l’activité est en pause à fragment en pause) •  Doit obligatoirement être lié à une activity, mais peut être réutilisé par une autre •  Un fragment peut être ajouté à la BackStack •  Disponible depuis Android 3.0 (API 11) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 46 Éléments de Base d’une Application Android
  • 47. Fragments Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 47 Éléments de Base d’une Application Android
  • 48. Autres Composants Android •  Une application Android est formée d’un ensemble de composants déclarés dans le Manifest •  Un composant peut être: •  Activity •  Broadcast Receiver •  Content Provider •  Service •  A voir ultérieurement… Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 48 Éléments de Base d’une Application Android