0% ont trouvé ce document utile (0 vote)
40 vues47 pages

Mobile 1

Transféré par

ala gharbi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
40 vues47 pages

Mobile 1

Transféré par

ala gharbi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Développement Android

Cycle de Vie, Composants Principaux,


Comportement…

Slide 1
ENVIRONNEMENT DE
DÉVELOPPEMENT ANDROID

Slide 2
Environnement de Développement Android
• 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

Slide 3
Android…
Environnement de Développement 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

Slide 4
Android est:
Environnement de Développement Android

• 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

Slide 5
Distribution des Versions (Avril 2015)
Environnement de Développement Android

https://developer.android.com/about/dashbo
ards/index.html

Slide 6
ARCHITECTURE ANDROID

Slide 7
Android SW Stack
Architecture Android

Slide 8
SW Stack (1): Linux Kernel
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.

Slide 9
SW Stack (2): Android Runtime
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 .

Slide 10
SW Stack (3): Libraries
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

Slide 11
SW Stack (4): Applications Framework
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.

Slide 12
SW Stack (5): Applications
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 ».

Slide 13
CONDUITE D’UN PROJET D’APP.
ANDROID

Slide 14
Point de Départ: IHM & UX
Conduite d’un Projet D’App. Android

Voir http://developer.android.com/training/design-navigation/wireframing.html
Slide 15
Étape 1: Planifier la Navigation entre Screens
Conduite d’un Projet D’App. Android

Slide 16
Étape 2: Choisir les Patrons de Navigation
Conduite d’un Projet D’App. Android

Slide 17
Étape 4: Définir les Screens (Wireframing)
Conduite d’un Projet D’App. Android

Slide 18
Étape 5: Raffiner chaque Screen
Conduite d’un Projet D’App. Android

Attention: Il faut respecter les patrons de conception Android!


Slide 19
Étape 6: Il Suffit de Coder…
Conduite d’un Projet D’App. Android

Slide 20
STRUCTURE D’UNE
APPLICATION ANDROID

Slide 21
Environnement de Développement
Structure d’une Application Android
• 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.
Slide 22
Arborescence d’un Projet
Structure d’une Application Android
Bibliothèques du module principal

Tests de votre application Code

source Java des applications

Images (PNG, JPEG ou


GIF) et fichiers XML
décrivant les formes Ressources utilisées par
l’application Fichiers XML
Fichiers XML représentant
décrivant les menus
l’interface d’une page ou d’une
partie de page de votre
Icônes de lancement de
application
l’application (classés par résolution
Dossier contenant les fichiers décrivant d’écran)
des valeurs utilisées dans
l’application. Ex : strings.xml Fichier de contrôle de l’application,
pour les chaînes, arrays.xml décrivant sa nature , ses composants
pour les tableaux… et les permissions associées
Slide 23
Résolutions, Densités, Différents Écrans
Structure d’une Application Android
• 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/practic
es/screens_support.html

Slide 24
Développement Android
CYCLE DE VIE D’UNE
APPLICATION ANDROID

Slide 25
Cycle de Vie
Cycle de Vie d’une Application Android
• 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

Vie d’une Application:


Début Actif/Inactif Fin
Visible / Invisible

Slide 26
Pile d’Activités
Cycle de Vie d’une Application Android
• 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

Slide 27
Pile d’Activités
Cycle de Vie d’une Application Android

Slide 28
États d’une Activité
Cycle de Vie d’une Application Android
• 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
Slide 29
Évènements du Cycle de Vie d’une Activité
Cycle de Vie d’une Application Android
• 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()

Slide 30
Évènements du Cycle de Vie d’une Activité
Cycle de Vie d’une Application Android

Slide 31
Méthodes de Transition (1/6): onCreate
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

Slide 32
Méthodes de Transition (2/6): onStart / onRestart
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

Slide 33
Méthodes de Transition (3/6): onResume
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

Slide 34
Méthodes de Transition (4/6): onPause
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

Slide 35
Méthodes de Transition (5/6): onStop
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
Slide 36
Méthodes de Transition (6/6): onDestroy
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

Slide 37
Complément d’Information
Cycle de Vie d’une Application Android
• 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/ActivityLifec
ycle.zip

Slide 38
Développement Android
ÉLÉMENTS DE BASE D’UNE
APPLICATION ANDROID

Slide 39
Activity (Rappel)
Éléments de Base d’une Application Android
• 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

Slide 40
Activity (Rappel)
Éléments de Base d’une Application Android
• 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)

Slide 41
Disposition des Éléments Graphiques
Éléments de Base d’une Application Android
• 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

Slide 42
Intents
Éléments de Base d’une Application Android
• 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
Slide 43
Enchaînement des Activités via les Intents
Éléments de Base d’une Application Android
• 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")

Slide 44
Fragments
Éléments de Base d’une Application Android
• 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)

Slide 45
Fragments
Éléments de Base d’une Application Android

Slide 46
Autres Composants Android
Éléments de Base d’une Application 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

Slide 47

Vous aimerez peut-être aussi