SlideShare une entreprise Scribd logo
1  sur  26
ETUDE DE CAS: ANDROID
Imene Sghaier
Chapitre IV
PLAN
 Présentation du système Android
 Historique
 Versions
 Architecture du système Android
 La pile des outils de développement pour
Android
 Eléments d’une application
 Gestion du multitâche
 Déploiement d’une application
 Google play
2
I. Sghaier- Systèmes d'exploitation pour mobiles
PRÉSENTATION DU SYSTÈME ANDROID
 Android est un système d'exploitation temps réel open
source conçue spécifiquement et pas exclusivement
pour des systèmes embarqués légers comme
smartphones, PDA, tablettes…
 Android désigne à la fois:
 Un environnement de développement (API)
 Un environnement d’exécution (plus souvent)
 Avantage de Android:
 Open source
 Gratuit
 Facile à développer
 Facile à vendre
 Flexible
 Complémentaire 3
I. Sghaier- Systèmes d'exploitation pour mobiles
PRÉSENTATION DU SYSTÈME ANDROID
 Android s'appuie sur deux piliers:
 le langage Java
 le SDK qui permet d'avoir un environnement de
développement facilitant la tâche du développeur
 Le kit de développement donne accès à des
exemples, de la documentation mais surtout à
l'API de programmation du système et à un
émulateur pour tester ses applications.
 Stratégiquement, Google utilise la licence Apache
pour Android ce qui permet la redistribution du
code sous forme libre ou non et d'en faire un
usage commercial. 4
I. Sghaier- Systèmes d'exploitation pour mobiles
HISTORIQUE
 À l'origine, « Android » était le nom d'une PME
américaine, créée en 2003 puis rachetée par
Google en 2005, qui avait la ferme intention de
s'introduire sur le marché des produits mobiles
d’où la première version d’Android a été publiée
le 5 novembre 2007.
 L'objectif de ce système, était de développer un
système d'exploitation mobile plus intelligent, qui
ne se contenterait pas uniquement de permettre
d’envoyer des SMS et transmettre des appels,
mais qui devait permettre à l'utilisateur
d'interagir avec son environnement. 5
VERSIONS
Version Nom Date
1.0 Version connue des
développeurs : sortie
avant le premier
téléphone Android
fin 2007
1.1 "Petit Four" début 2009
1.5 "Cupcake" (Petit
Gâteau)
avril 2009
1.6 "Donut" (Beignet) septembre 2009
2.1 "Eclair" janvier 2010
2.2 "FroYo" (Frozen
Yogourt : Yaourt glacé)
mai 2010
2.3 "Gingerbread" (Pain
d'épice)
décembre 2010
3.0 "Honeycomb" (Rayon
de miel)
janvier 2011
6
VERSIONS
4.0 "Ice Cream Sandwich"
(Sandwich à la crème
glacée), version unifiée
pour Smartphone,
Tablette et GoogleTV,
combinant Gingerbread
et
Honeycomb
octobre 2011
4.1 "Jelly Bean" (API 16) juillet 2012
4.2.2 API 17 février 2013
4.3 API 18 juillet 2013
4.4 "KitKat" (API 19) octobre 2013
5.0 "Lollipop" (API 21) octobre 2014
5.1.1 "Lollipop" (API 22) mars 2015
6.0 "Marshmallow" (API 23) octobre 2015
7.0 « Nougat » (API 24) Mars 2016
7
ARCHITECTURE DU SYSTÈME ANDROID
8
http://code.google.com/android/what-is-android.html
I. Sghaier- Systèmes d'exploitation pour mobiles
ARCHITECTURE DU SYSTÈME ANDROID
 La couche "Applications" (navigateur, gestion des
contacts, application de téléphonie...)
 La couche "Application Framework" : cette couche
permet au programmeur de construire de nouvelles
applications. Cette couche fournit la gestion :
 des Views (IHM)
 des ContentProviders (fournisseurs de contenus) qui
permettent l'accessibillité aux données des autres
applications (ex : les contacts) et donc les partages de
données
 des ressources qui sont les fichiers non codes comme les
images, les écrans (Resource Manager)
 des notifications (affichage d'alerte dans la barre de titre)
 des Activities pour l'enchaînement des écrans 9
I. Sghaier- Systèmes d'exploitation pour mobiles
ARCHITECTURE DU SYSTÈME ANDROID
 La couche "Libraries" (bibliothèques) qui représente la
couche logicielle basse pour utiliser
 les formats multimédia : images, audio et vidéo enregistrement
comme rendu
 les dessins 2D et 3D, bitmap et vectoriel,
 une base de données SQL (SQLite)
 SSL
 L'environnement d'exécution Android Runtime (à partir
de lollilop) qui compile le bytecode vers le natif
 Toute application est exécutée dans son propre processus,
dans sa propre Dalvik Virtual Machine (avant lollilop),
donc plusieurs instances de la DVM peuvent être lancées
efficacement.
 Le noyau Linux sur lequel la Dalvik virtual machine
s'appuie pour gérer le multithreading, la mémoire. Le
noyau Linux apporte les services de sécurité, la gestion
des processus, etc.
 une couche d'abstraction pour l'accès aux capteurs (HAL) 10
I. Sghaier- Systèmes d'exploitation pour mobiles
ARCHITECTURE DU SYSTÈME ANDROID
 Dalvik est le nom de la machine virtuelle open-
source utilisée sur les systèmes Android. Cette
machine virtuelle exécute des fichiers .dex (dalvic
executable), plus ramassés que les .class classiques.
Ce format évite par exemple la duplication des
String constantes.
 La machine virtuelle utilise elle-même moins
d'espace mémoire et l'adressage des constantes se
fait par un pointeur de 32 bits.
 Dalvik n'est pas compatible avec une JVM du type
Java SE ou même Java ME. La librairie d'accès est
donc redéfinie entièrement par Google.
 A partir de Lollipop (5.0), Android dispose d'ART
comme JVM pour Android. Elle compile
l'application au moment du déploiement (Ahead-of-
time compilation: compilation à l’installation).
11
I. Sghaier- Systèmes d'exploitation pour mobiles
LA PILE DES OUTILS DE DÉVELOPPEMENT POUR ANDROID
12
I. Sghaier- Systèmes d'exploitation pour mobiles
LA PILE DES OUTILS DE DÉVELOPPEMENT POUR ANDROID
 L'Android SDK comporte:
 Une API android (diff composants Activity, Service,
ContentProvider, BroadCastReceiver…)
 Un environnement de développement
 Une machine virtuelle java adaptée à Android
(ART)
 Un environnement debuggueur DDMS (Dalvic
Debug Monitor Service)
 Des emulateurs virtuels (Android Virtual Device)
 L'Android SDK compile l'ensemble du
développement (code Java, données, fichier de
ressources, fichier XML) dans un paquetage
Android : un .apk
13
I. Sghaier- Systèmes d'exploitation pour mobiles
ELÉMENTS D’UNE APPLICATION
Une application Android peut être composée des éléments
suivants:
 des activités (android.app.Activity): il s'agit d'une partie
de l'application présentant une vue à l'utilisateur
 des services (android.app.Service): il s'agit d'une activité
tâche de fond sans vue associée
 des fournisseurs de contenus
(android.content.ContentProvider): permet le partage
d'informations au sein ou entre applications
 des widgets (android.appwidget.*): une vue accrochée au
Bureau d'Android
 des Intents (android.content.Intent): permet d'envoyer un
message pour un composant externe sans le nommer
explicitement
 des récepteurs d'Intents
(android.content.BroadcastReceiver): permet de déclarer
être capable de répondre à des Intents
 des notifications (android.app.Notifications): permet de
notifier l'utilisateur de la survenue d'événements
14
I. Sghaier- Systèmes d'exploitation pour mobiles
ELÉMENTS D’UNE APPLICATION
 Une activité (activity) gère l'affichage et les
interactions utilisateurs sur un écran . Les activités
sont indépendantes les unes des autres.
 Une activité est une sous classe de
android.app.Activity
 Une application peut avoir plusieurs activités pouvant
lancer cette application
 Un service (service) est un composant qui est
exécuté en tâche de fond. Il ne fournit pas d'interface
graphique.
 Exemple de service : jouer de la musique, rechercher
des données sur le réseau.
 Un service est une sous classe de android.app.Service
15
I. Sghaier- Systèmes d'exploitation pour mobiles
ELÉMENTS D’UNE APPLICATION
 Un fournisseur de contenu (content provider)
gère des données partageables. C'est le seul
moyen d'accéder à des données partagées entre
applications
 Exemple de fournisseur de contenu : les
informations de contacts de l'utilisateur du
smartphone
 On peut créer un fournisseur de contenus pour
des données qu'on veut partager
 On récupère un fournisseur de contenu pour des
données partageables en demandant le
ContentResolver du système et en donnant
ensuite, dans les requêtes, l'URI des données (A
voir dans le TP) 16
I. Sghaier- Systèmes d'exploitation pour mobiles
ELÉMENTS D’UNE APPLICATION
 Un récepteur d'informations (broadcast receiver) est un
composant à l'écoute d'informations qui lui sont destinées.
Un tel récepteur indique le type d'informations qui
l'intéressent et pour lesquelles il se mettra en écoute.
 Exemple : appel téléphonique entrant, réception d'un SMS,
réseau Wi-Fi connecté, informations diffusées par des
applications.
 Les informations peuvent être envoyées par le système
(réception de la liste des réseaux Wi-Fi, ...)
 L'application réceptrice d'informations (c'est à dire
possédant un récepteur d'informations) n'a pas besoin
d'être lancée. Si elle ne l'est pas, Android la démarre
automatiquement
 Un récepteur n'est pas une IHM mais peut en lancer une
(éventuellement petite dans la barre de notification), ou
peut lancer un service traitant l'arrivée de l'information
 Un récepteur d'informations est une sous classe de
 android.content.BroadcastReceiver 17
I. Sghaier- Systèmes d'exploitation pour mobiles
ELÉMENTS D’UNE APPLICATION
 Un événement (intent) est une "intention" à faire
quelque chose contenant des informations destinées à
un composant Android. C'est un message asynchrone
 Les activités, services et récepteurs d'informations
utilisent les Intent pour communiquer entre eux
 Un Intent ne contient pas obligatoirement
explicitement le composant qui va le gérer. Dans ce cas
c'est un Intent implicite. Si l'Intent indique
explicitement la classe du composant qui va le gérer
c'est un Intent explicite
 Un intent est une sous classe de
android.content.Intent
18
I. Sghaier- Systèmes d'exploitation pour mobiles
ELÉMENTS D’UNE APPLICATION
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="andro.jf"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon"
android:label="@string/app_name">
<activity android:name=".Main"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service>...</service>
<receiver>...</receiver>
<provider>...</provider>
</application>
</manifest> 19
I. Sghaier- Systèmes d'exploitation pour mobiles
o Le fichier Manifest
ELÉMENTS D’UNE APPLICATION
 Toute application doit contenir le fichier XML
AndroidManifest.xml
 Ce fichier déclare, entre autre, les différents composants
de l'application
 Parmi les composants, seuls les récepteurs d'évènements
(BroadcastReceiver) ne sont pas forcément dans le
manifeste.
 Les autres (Activity, Service, ContentProvider) doivent
l'être sinon ils ne seront jamais lancés quel que soit le
code écrit !
 Ce fichier contient aussi :
 les permissions nécessaires à l'application (accès internet, accès
en lecture/écriture aux données partagées)
 le numéro minimum de la version API utilisée, des logiciels et
matériels utilisés par l'application (caméra) et des bibliothèques
supplémentaires à l'API de base (Google maps library) 20
I. Sghaier- Systèmes d'exploitation pour mobiles
ELÉMENTS D’UNE APPLICATION
 Les ressources
 Les ressources de l'applications sont utilisées
dans le code au travers de la classe statique
R.
 Toutes les ressources sont accessibles
au travers de R, dés qu'elles sont
déclarées dans le fichier XML ou que le
fichier associé est déposé dans le répertoire
adéquat. Les ressources sont utilisées de la
manière suivante:
android.R.type_ressource.nom_ressource
21
I. Sghaier- Systèmes d'exploitation pour mobiles
GESTION DU MULTITÂCHE
 Tous les programmes Android s'exécutent dans
un processus constitué de plusieurs threads.
Comme un processus n'a qu'une plage mémoire,
alors tous les threads se partagent les accès à
cette plage mémoire.
 Quand une activité est lancée, le système crée
un thread principal dans lequel s'exécutera
l'application. C'est ce thread qui est en charge
d'écouter les évènements déclenchés par
l'utilisateur quand il interagit avec l'interface
graphique. C'est pourquoi le second nom du
thread principal est thread UI (UI pour User
Interface 22
I. Sghaier- Systèmes d'exploitation pour mobiles
GESTION DU MULTITÂCHE
 Pour gérer le multitâche, Android utilise
un pool de threads comprenant n threads afin
d'exécuter m tâches qui se trouvent dans un
autre pool en attendant qu'un thread s'occupe
d'elles. Logiquement, un pool est organisé
comme une file, ce qui signifie qu'on empile les
éléments les uns sur les autres et que nous
n'avons accès qu'au sommet de cet empilement.
 Les résultats de chaque thread sont aussi
placés dans un pool de manière à pouvoir les
récupérer dans un ordre cohérent.
 Dès qu'un thread complète sa tâche, il va
demander la prochaine tâche qui se trouve dans
le pool jusqu'à ce qu'il n'y ait plus de tâches. 23
I. Sghaier- Systèmes d'exploitation pour mobiles
DÉPLOIEMENT D’UNE APPLICATION
24
I. Sghaier- Systèmes d'exploitation pour mobiles
GOOGLE PLAY
 Google Play (Play Store), est une boutique en ligne créée
par Google (le 6 mars 2012) par fusion des services
Android Market et d'autres services Google (location de
films, achat de musique, etc.). Elle permet de télécharger
et d'installer de nouvelles applications ("apps") dans le
smartphone
 Android market est né le 22 octobre 2008
 Au 30 octobre 2012, Google Play est fort de 700 000
applications ce qui le met à égalité avec iOS:
http://fr.wikipedia.org/wiki/Android_Market
 Les développeurs d'applications payantes reçoivent 70 %
du prix du logiciel, 30% allant à Google
 Chaque nouveau développeur paie $25 comme frais de
dossier (une seule fois) 25
I. Sghaier- Systèmes d'exploitation pour mobiles
RÉFÉRENCES
 developer.android.com
 https://openclassrooms.com/courses/creez-des-
applications-pour-android
26

Contenu connexe

Similaire à Chapitre 4 sem

Similaire à Chapitre 4 sem (20)

1-android.pdf
1-android.pdf1-android.pdf
1-android.pdf
 
1 tours horizon
1 tours horizon1 tours horizon
1 tours horizon
 
cours-android.pdf
cours-android.pdfcours-android.pdf
cours-android.pdf
 
Hello droid
Hello droidHello droid
Hello droid
 
cours Android.pptx
cours Android.pptxcours Android.pptx
cours Android.pptx
 
Architecture android
Architecture androidArchitecture android
Architecture android
 
Android introvf
Android introvfAndroid introvf
Android introvf
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contact
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contact
 
Workshop android
Workshop androidWorkshop android
Workshop android
 
Environnement Android.pdf
Environnement Android.pdfEnvironnement Android.pdf
Environnement Android.pdf
 
Android 1
Android 1Android 1
Android 1
 
Composants d-une application Android.ppt
Composants d-une application Android.pptComposants d-une application Android.ppt
Composants d-une application Android.ppt
 
Cours android
Cours androidCours android
Cours android
 
Introduction_Android_-_Complet.pdf
Introduction_Android_-_Complet.pdfIntroduction_Android_-_Complet.pdf
Introduction_Android_-_Complet.pdf
 
Développement Android
Développement AndroidDéveloppement Android
Développement Android
 
Développement Sous Android
Développement Sous AndroidDéveloppement Sous Android
Développement Sous Android
 
Architecture android
Architecture androidArchitecture android
Architecture android
 
Cours 1 Android
Cours 1 AndroidCours 1 Android
Cours 1 Android
 
introAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdfintroAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdf
 

Plus de Institut Supérieur des Etudes Technologiques de Nabeul (8)

Les sockets.pptx
Les sockets.pptxLes sockets.pptx
Les sockets.pptx
 
chap 0 POO.pptx
chap 0 POO.pptxchap 0 POO.pptx
chap 0 POO.pptx
 
Chapitre 5 android
Chapitre 5 androidChapitre 5 android
Chapitre 5 android
 
Chapitre 3 sem
Chapitre 3 semChapitre 3 sem
Chapitre 3 sem
 
Chapitre 1 sem
Chapitre 1 semChapitre 1 sem
Chapitre 1 sem
 
Chapitre 5 sem
Chapitre 5 semChapitre 5 sem
Chapitre 5 sem
 
Chapitre 6 sem
Chapitre 6 semChapitre 6 sem
Chapitre 6 sem
 
Chapitre 4 Linux
Chapitre 4 LinuxChapitre 4 Linux
Chapitre 4 Linux
 

Dernier

JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfInstitut de l'Elevage - Idele
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfInstitut de l'Elevage - Idele
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfmia884611
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)Sana REFAI
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfInstitut de l'Elevage - Idele
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...Institut de l'Elevage - Idele
 

Dernier (8)

JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdf
 
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdfJTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdf
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)
 
CAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptxCAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptx
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdf
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
 

Chapitre 4 sem

  • 1. ETUDE DE CAS: ANDROID Imene Sghaier Chapitre IV
  • 2. PLAN  Présentation du système Android  Historique  Versions  Architecture du système Android  La pile des outils de développement pour Android  Eléments d’une application  Gestion du multitâche  Déploiement d’une application  Google play 2 I. Sghaier- Systèmes d'exploitation pour mobiles
  • 3. PRÉSENTATION DU SYSTÈME ANDROID  Android est un système d'exploitation temps réel open source conçue spécifiquement et pas exclusivement pour des systèmes embarqués légers comme smartphones, PDA, tablettes…  Android désigne à la fois:  Un environnement de développement (API)  Un environnement d’exécution (plus souvent)  Avantage de Android:  Open source  Gratuit  Facile à développer  Facile à vendre  Flexible  Complémentaire 3 I. Sghaier- Systèmes d'exploitation pour mobiles
  • 4. PRÉSENTATION DU SYSTÈME ANDROID  Android s'appuie sur deux piliers:  le langage Java  le SDK qui permet d'avoir un environnement de développement facilitant la tâche du développeur  Le kit de développement donne accès à des exemples, de la documentation mais surtout à l'API de programmation du système et à un émulateur pour tester ses applications.  Stratégiquement, Google utilise la licence Apache pour Android ce qui permet la redistribution du code sous forme libre ou non et d'en faire un usage commercial. 4 I. Sghaier- Systèmes d'exploitation pour mobiles
  • 5. HISTORIQUE  À l'origine, « Android » était le nom d'une PME américaine, créée en 2003 puis rachetée par Google en 2005, qui avait la ferme intention de s'introduire sur le marché des produits mobiles d’où la première version d’Android a été publiée le 5 novembre 2007.  L'objectif de ce système, était de développer un système d'exploitation mobile plus intelligent, qui ne se contenterait pas uniquement de permettre d’envoyer des SMS et transmettre des appels, mais qui devait permettre à l'utilisateur d'interagir avec son environnement. 5
  • 6. VERSIONS Version Nom Date 1.0 Version connue des développeurs : sortie avant le premier téléphone Android fin 2007 1.1 "Petit Four" début 2009 1.5 "Cupcake" (Petit Gâteau) avril 2009 1.6 "Donut" (Beignet) septembre 2009 2.1 "Eclair" janvier 2010 2.2 "FroYo" (Frozen Yogourt : Yaourt glacé) mai 2010 2.3 "Gingerbread" (Pain d'épice) décembre 2010 3.0 "Honeycomb" (Rayon de miel) janvier 2011 6
  • 7. VERSIONS 4.0 "Ice Cream Sandwich" (Sandwich à la crème glacée), version unifiée pour Smartphone, Tablette et GoogleTV, combinant Gingerbread et Honeycomb octobre 2011 4.1 "Jelly Bean" (API 16) juillet 2012 4.2.2 API 17 février 2013 4.3 API 18 juillet 2013 4.4 "KitKat" (API 19) octobre 2013 5.0 "Lollipop" (API 21) octobre 2014 5.1.1 "Lollipop" (API 22) mars 2015 6.0 "Marshmallow" (API 23) octobre 2015 7.0 « Nougat » (API 24) Mars 2016 7
  • 8. ARCHITECTURE DU SYSTÈME ANDROID 8 http://code.google.com/android/what-is-android.html I. Sghaier- Systèmes d'exploitation pour mobiles
  • 9. ARCHITECTURE DU SYSTÈME ANDROID  La couche "Applications" (navigateur, gestion des contacts, application de téléphonie...)  La couche "Application Framework" : cette couche permet au programmeur de construire de nouvelles applications. Cette couche fournit la gestion :  des Views (IHM)  des ContentProviders (fournisseurs de contenus) qui permettent l'accessibillité aux données des autres applications (ex : les contacts) et donc les partages de données  des ressources qui sont les fichiers non codes comme les images, les écrans (Resource Manager)  des notifications (affichage d'alerte dans la barre de titre)  des Activities pour l'enchaînement des écrans 9 I. Sghaier- Systèmes d'exploitation pour mobiles
  • 10. ARCHITECTURE DU SYSTÈME ANDROID  La couche "Libraries" (bibliothèques) qui représente la couche logicielle basse pour utiliser  les formats multimédia : images, audio et vidéo enregistrement comme rendu  les dessins 2D et 3D, bitmap et vectoriel,  une base de données SQL (SQLite)  SSL  L'environnement d'exécution Android Runtime (à partir de lollilop) qui compile le bytecode vers le natif  Toute application est exécutée dans son propre processus, dans sa propre Dalvik Virtual Machine (avant lollilop), donc plusieurs instances de la DVM peuvent être lancées efficacement.  Le noyau Linux sur lequel la Dalvik virtual machine s'appuie pour gérer le multithreading, la mémoire. Le noyau Linux apporte les services de sécurité, la gestion des processus, etc.  une couche d'abstraction pour l'accès aux capteurs (HAL) 10 I. Sghaier- Systèmes d'exploitation pour mobiles
  • 11. ARCHITECTURE DU SYSTÈME ANDROID  Dalvik est le nom de la machine virtuelle open- source utilisée sur les systèmes Android. Cette machine virtuelle exécute des fichiers .dex (dalvic executable), plus ramassés que les .class classiques. Ce format évite par exemple la duplication des String constantes.  La machine virtuelle utilise elle-même moins d'espace mémoire et l'adressage des constantes se fait par un pointeur de 32 bits.  Dalvik n'est pas compatible avec une JVM du type Java SE ou même Java ME. La librairie d'accès est donc redéfinie entièrement par Google.  A partir de Lollipop (5.0), Android dispose d'ART comme JVM pour Android. Elle compile l'application au moment du déploiement (Ahead-of- time compilation: compilation à l’installation). 11 I. Sghaier- Systèmes d'exploitation pour mobiles
  • 12. LA PILE DES OUTILS DE DÉVELOPPEMENT POUR ANDROID 12 I. Sghaier- Systèmes d'exploitation pour mobiles
  • 13. LA PILE DES OUTILS DE DÉVELOPPEMENT POUR ANDROID  L'Android SDK comporte:  Une API android (diff composants Activity, Service, ContentProvider, BroadCastReceiver…)  Un environnement de développement  Une machine virtuelle java adaptée à Android (ART)  Un environnement debuggueur DDMS (Dalvic Debug Monitor Service)  Des emulateurs virtuels (Android Virtual Device)  L'Android SDK compile l'ensemble du développement (code Java, données, fichier de ressources, fichier XML) dans un paquetage Android : un .apk 13 I. Sghaier- Systèmes d'exploitation pour mobiles
  • 14. ELÉMENTS D’UNE APPLICATION Une application Android peut être composée des éléments suivants:  des activités (android.app.Activity): il s'agit d'une partie de l'application présentant une vue à l'utilisateur  des services (android.app.Service): il s'agit d'une activité tâche de fond sans vue associée  des fournisseurs de contenus (android.content.ContentProvider): permet le partage d'informations au sein ou entre applications  des widgets (android.appwidget.*): une vue accrochée au Bureau d'Android  des Intents (android.content.Intent): permet d'envoyer un message pour un composant externe sans le nommer explicitement  des récepteurs d'Intents (android.content.BroadcastReceiver): permet de déclarer être capable de répondre à des Intents  des notifications (android.app.Notifications): permet de notifier l'utilisateur de la survenue d'événements 14 I. Sghaier- Systèmes d'exploitation pour mobiles
  • 15. ELÉMENTS D’UNE APPLICATION  Une activité (activity) gère l'affichage et les interactions utilisateurs sur un écran . Les activités sont indépendantes les unes des autres.  Une activité est une sous classe de android.app.Activity  Une application peut avoir plusieurs activités pouvant lancer cette application  Un service (service) est un composant qui est exécuté en tâche de fond. Il ne fournit pas d'interface graphique.  Exemple de service : jouer de la musique, rechercher des données sur le réseau.  Un service est une sous classe de android.app.Service 15 I. Sghaier- Systèmes d'exploitation pour mobiles
  • 16. ELÉMENTS D’UNE APPLICATION  Un fournisseur de contenu (content provider) gère des données partageables. C'est le seul moyen d'accéder à des données partagées entre applications  Exemple de fournisseur de contenu : les informations de contacts de l'utilisateur du smartphone  On peut créer un fournisseur de contenus pour des données qu'on veut partager  On récupère un fournisseur de contenu pour des données partageables en demandant le ContentResolver du système et en donnant ensuite, dans les requêtes, l'URI des données (A voir dans le TP) 16 I. Sghaier- Systèmes d'exploitation pour mobiles
  • 17. ELÉMENTS D’UNE APPLICATION  Un récepteur d'informations (broadcast receiver) est un composant à l'écoute d'informations qui lui sont destinées. Un tel récepteur indique le type d'informations qui l'intéressent et pour lesquelles il se mettra en écoute.  Exemple : appel téléphonique entrant, réception d'un SMS, réseau Wi-Fi connecté, informations diffusées par des applications.  Les informations peuvent être envoyées par le système (réception de la liste des réseaux Wi-Fi, ...)  L'application réceptrice d'informations (c'est à dire possédant un récepteur d'informations) n'a pas besoin d'être lancée. Si elle ne l'est pas, Android la démarre automatiquement  Un récepteur n'est pas une IHM mais peut en lancer une (éventuellement petite dans la barre de notification), ou peut lancer un service traitant l'arrivée de l'information  Un récepteur d'informations est une sous classe de  android.content.BroadcastReceiver 17 I. Sghaier- Systèmes d'exploitation pour mobiles
  • 18. ELÉMENTS D’UNE APPLICATION  Un événement (intent) est une "intention" à faire quelque chose contenant des informations destinées à un composant Android. C'est un message asynchrone  Les activités, services et récepteurs d'informations utilisent les Intent pour communiquer entre eux  Un Intent ne contient pas obligatoirement explicitement le composant qui va le gérer. Dans ce cas c'est un Intent implicite. Si l'Intent indique explicitement la classe du composant qui va le gérer c'est un Intent explicite  Un intent est une sous classe de android.content.Intent 18 I. Sghaier- Systèmes d'exploitation pour mobiles
  • 19. ELÉMENTS D’UNE APPLICATION <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="andro.jf" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Main" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service>...</service> <receiver>...</receiver> <provider>...</provider> </application> </manifest> 19 I. Sghaier- Systèmes d'exploitation pour mobiles o Le fichier Manifest
  • 20. ELÉMENTS D’UNE APPLICATION  Toute application doit contenir le fichier XML AndroidManifest.xml  Ce fichier déclare, entre autre, les différents composants de l'application  Parmi les composants, seuls les récepteurs d'évènements (BroadcastReceiver) ne sont pas forcément dans le manifeste.  Les autres (Activity, Service, ContentProvider) doivent l'être sinon ils ne seront jamais lancés quel que soit le code écrit !  Ce fichier contient aussi :  les permissions nécessaires à l'application (accès internet, accès en lecture/écriture aux données partagées)  le numéro minimum de la version API utilisée, des logiciels et matériels utilisés par l'application (caméra) et des bibliothèques supplémentaires à l'API de base (Google maps library) 20 I. Sghaier- Systèmes d'exploitation pour mobiles
  • 21. ELÉMENTS D’UNE APPLICATION  Les ressources  Les ressources de l'applications sont utilisées dans le code au travers de la classe statique R.  Toutes les ressources sont accessibles au travers de R, dés qu'elles sont déclarées dans le fichier XML ou que le fichier associé est déposé dans le répertoire adéquat. Les ressources sont utilisées de la manière suivante: android.R.type_ressource.nom_ressource 21 I. Sghaier- Systèmes d'exploitation pour mobiles
  • 22. GESTION DU MULTITÂCHE  Tous les programmes Android s'exécutent dans un processus constitué de plusieurs threads. Comme un processus n'a qu'une plage mémoire, alors tous les threads se partagent les accès à cette plage mémoire.  Quand une activité est lancée, le système crée un thread principal dans lequel s'exécutera l'application. C'est ce thread qui est en charge d'écouter les évènements déclenchés par l'utilisateur quand il interagit avec l'interface graphique. C'est pourquoi le second nom du thread principal est thread UI (UI pour User Interface 22 I. Sghaier- Systèmes d'exploitation pour mobiles
  • 23. GESTION DU MULTITÂCHE  Pour gérer le multitâche, Android utilise un pool de threads comprenant n threads afin d'exécuter m tâches qui se trouvent dans un autre pool en attendant qu'un thread s'occupe d'elles. Logiquement, un pool est organisé comme une file, ce qui signifie qu'on empile les éléments les uns sur les autres et que nous n'avons accès qu'au sommet de cet empilement.  Les résultats de chaque thread sont aussi placés dans un pool de manière à pouvoir les récupérer dans un ordre cohérent.  Dès qu'un thread complète sa tâche, il va demander la prochaine tâche qui se trouve dans le pool jusqu'à ce qu'il n'y ait plus de tâches. 23 I. Sghaier- Systèmes d'exploitation pour mobiles
  • 24. DÉPLOIEMENT D’UNE APPLICATION 24 I. Sghaier- Systèmes d'exploitation pour mobiles
  • 25. GOOGLE PLAY  Google Play (Play Store), est une boutique en ligne créée par Google (le 6 mars 2012) par fusion des services Android Market et d'autres services Google (location de films, achat de musique, etc.). Elle permet de télécharger et d'installer de nouvelles applications ("apps") dans le smartphone  Android market est né le 22 octobre 2008  Au 30 octobre 2012, Google Play est fort de 700 000 applications ce qui le met à égalité avec iOS: http://fr.wikipedia.org/wiki/Android_Market  Les développeurs d'applications payantes reçoivent 70 % du prix du logiciel, 30% allant à Google  Chaque nouveau développeur paie $25 comme frais de dossier (une seule fois) 25 I. Sghaier- Systèmes d'exploitation pour mobiles