SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
Samir Akhrouf
Environnement Android
Université Mohamed Boudiaf de M’Sila
Faculté des Mathématique et de l’Informatique
Département d’Informatique
Année universitaire
2019-2020
2
❑C’est un système d’exploitation OPEN SOURCE
pour terminaux mobiles (Smartphones, Tablet
,….
Introduction 1/2
❑ Initialement, Android a été lancé par Andy Rubin en
2003, son idée était de développer un système
d'exploitation pour les appareils photo numériques, pas les
téléphones.
❑ Il a changé d'avis rapidement, et s'est rendu compte que la
technologie allait bientôt exploser sur les mobiles, il a
commencé à développer le système d'exploitation pour les
téléphones mobiles.
Andy Rubin
2003 Android
3
❑Après la sortie de l'iPhone d'Apple en 2007, Open Handset
Alliance (OHA) a vu le jour et a eu comme première tâche de
développer des normes ouvertes pour les mobiles.
❑Aujourd’hui, Android est le système d’exploitation mobile le
plus utilisé à travers le monde avec plus de 86 % de la part du
marché des OS.
❑Après une énorme perte, Andy Rubin a décidé de fermer
Android et Google l’a racheté le 17 août 2005.
•Google a
racheté
•Android
Inc.
2005
OHA
Consortium
lancé par
google
2007
•Android
OS 86,2 %
•Apple iOS
12,9 %
2019
4
Introduction 2/2
❑ Libre : Il peut fonctionner sur de nombreux appareils différents de
nombreux fabricants
❑ Extensible : fournit un kit de développement logiciel contenant plusieurs
outils aidant à développer des projets et des modules logiciels pour créer
des applications pour les utilisateurs d'Android.
❑ Faciles à développer : toutes les API mises à disposition facilitent et
accélèrent grandement le travail. Ces APIs sont très complètes et très
faciles d'accès. De manière un peu caricaturale, on peut dire que vous
pouvez envoyer un SMS en seulement deux lignes de code.
❑ Facile à vendre : le Play Store (anciennement Android Market) est une
plateforme immense et très visitée ; c'est donc une mine d'opportunités
pour quiconque possède une idée originale ou utile.
❑ Ingénieuse : l'architecture d'Android est inspirée par les applications
composites, et encourage par ailleurs leur développement. Ces
applications se trouvent essentiellement sur internet et leur principe est
que vous pouvez combiner plusieurs composants totalement
❑ Il représente un écosystème pour les applications mobiles par ses
différents outils, acteurs et marché. 5
6
Plateforme Android
Le système d’exploitation Android est conçu sous forme de pile de
cinq couches principales, chacune est une abstraction de la couche
supérieure. Android est basé sur :
❑un noyau Linux au-dessus duquel il y a
❑le Hardware Abstraction Layer (HAL) qui est une couche
d’abstraction du matériel.
❑Ensuite on retrouve un certain nombre de bibliothèques de
C et C++ permettant d’utiliser un certain nombre de
composants Android.
❑ Juste après, on retrouve, la plateforme de développement
par ses différents outils.
❑La dernière couche englobe les applications utilisateurs.
7
Architecture
8
1.Linux kernel
❑ Il est basé sur un noyau 2.6 de Linux,
❑ il assure la gestion multitâche préemptive des processus.
❑ Il fournit les services système de bas-niveau tel que la gestion
de la mémoire, stockage, énergie, communication réseaux et
les drivers des différentes unités matérielles.
2. Hardware Abstraction Layer (HAL)
Cette couche se situe entre les librairies et le kernel linux, elle fournit les
interfaces que doivent implémenter les drivers kernel. Cette couche sépare la
plateforme logique des interfaces matérielles. Le but de cette couche est de
faciliter le portage des librairies sur différents matériels.
Les ingénieurs d'Android ont décidé de faire cette couche car :
❑ les drivers kernel n’ont pas tous des interfaces standardisées.
❑ les drivers kernel sont sous licence GPL ce qui exposerait les
interfaces propriétaires des fabricants. Les fabricants veulent pouvoir
garder ces interfaces en "closed source"
❑ Android a des besoins spécifiques pour les drivers kernel.
3. Librairies
Un ensemble de bibliothèques C/C++
(Natives) utilisées par les composants
systèmes ; elles peuvent être aussi
utilisées par les développeurs via le SDK.
Elle contient entre autres :
❑ Libc: bibliothèque c standard, SSL: Secure Socket Layer communication
❑ SGL: dessin 2D, OpenGL|ES: image 3D
❑ Media Framework: media codecs, SQLite: gestionnaire de BDD SQLite
❑ WebKit: noyau du browser web, FreeType: fonts Bitmap et vectorielles
❑ SufraceManager: window manager with off-screen buffering. 9
4. Runtime
Cette couche se situe au-dessus des
libraires C/C++, elle se compose du
"cœur" du Framework et de la
machine virtuel dalvik.
Les applications Java développées pour Android
doivent être compilées au format dalvik exécutable
(.dex) avec l'outil dx. Cet outil compile les .java en .class
et ensuite il convertit ces .class en .dex. Un .dex peut
contenir plusieurs classes. Les strings dupliquées et
autre constantes utilisées dans de multiples classes
sont regroupées dans un .dex. Le bytecode utilisé dans
les .dex est le Dalvik bytecode et non le java Bytecode.
La VM Dalvik a quelques caractéristiques spécifiques par rapport aux autres VM:
❑ la VM a été "dégraissée" pour utiliser moins d'espace mémoire,
❑ pas de compilation à la volée (JIT),
❑ elle utilise son propre bytecode et pas le Java bytecode,
❑ la table des constantes a été modifié pour n'utiliser que des indexes de
32 bits afin de simplifier l'interpréteur.
10
Core Libraries : un ensemble d’API écrites en java que le développeur peut
appeler dans son programme. Ceci inclut les packages qui sont dans la racine
telles que : android.view, android.widget, android.media, …
5. Application framework
C’est l’ensemble des services offerts par Android pour l’utilisateur. Ces
composants peuvent être réutilisés par le développeur pour les étendre à
d’autres finalités.
❑Les développeurs ont le plein accès à tous les API de la Framework
utilisées par les applications de base (core apps)
❑Les développeurs peuvent remplacer ces composants.
11
Rôle
System View
Utilisé pour construire une application. Ceci
inclut : lists, grids, textboxes, buttons, web
browsers
Content Provider
Permet à une application d’accéder à des
données externes et de partager les sienne
avec d’autres applications.
Resource Manager
Permet d’accéder à des ressources telles que
(strings, graphics, and layout files)
Notification
Manager
Gestionnaire des alertes
Activity Manager Gère le cycle de vie d’une activité
Telephony
manager
Gère tous les appels téléphoniques.
Locations manager Gère les localisations GPS, opérateur ou Wifi
12
6. Applications
Cette couche englobe toutes les applications tournant sous Android, que
se soient celles livré par la plateforme, telle que google Map, mail, …ou
celles développées par des tiers.
Sécurité dans le système Android
Chaque application est exécutée dans une sandbox:
❑Android est un système Linux multi‐utilisateur
❑Chaque application est un utilisateur différent
❑Chaque fichier de l'application n'est accessible que par cette
application
❑Par défaut, chaque processus possède sa machine virtuelle
❑Chaque application a son propre processus Linux
13
Une application Android est construite sur la base de quatre composants
fondamentaux : Activity, Service, ContentProvider et BroadcastReceiver.
Chaque composant est un point d'entrée par lequel le système ou un
utilisateur peut entrer dans votre application. Ces composants
communiquent entre eux, et entre d’autres applications, via les Intents.
Les composants fondamentaux d’une application Android
14
15
Qu’est-ce qu’un programme Android?
Android offre un framework riche mais suffisamment rigide et étanche:
❑ Du XML pour les interfaces
❑ Les activités : briques de base d’une application
❑ Les services : conçus pour durer
❑ Les fournisseurs de contenus : abstraction de données
❑ Les intentions (intents): interagir avec le système
Android permet d’accéder aux fonctionnalités avancées de
l’appareil:
❑ Stockage (base de données, support externe)
❑ Réseau (Wifi, Bluetooth, 3G, ...)
❑ Multimédia (lecture audio, photo, caméra)
❑GPS (géolocalisation des applications par différents moyens)
❑Services de téléphonie (appels, SMS)
1. Activité
Une activité est la composante principale d’une application sous
Android. L'activity est le métier de l'application et possède
généralement une View au minimum, c'est-à-dire un écran graphique.
Elle hérite de la classe Activity (ou AppCompatActivity) de la
plateforme et doit obligatoirement surcharger le callback onCreate.
2. Service
C’est uncomposant polyvalent qui s'exécute en arrière-plan pour effectuer
des opérations de longue durée ou des tâches pour des processus distants. Il
ne fournit pas, généralement, l'interface utilisateur.
16
3. BroadCast Receiver
C’est un composant qui permet au système de transmettre des événements
à l'application en dehors d’un flux utilisateur normal, permettant
à l'application de répondre aux annonces de diffusion à l’échelle du
système.
17
4. Content Provider
Gère un ensemble partagé de données d'application que vous pouvez
stocker dans le système de fichiers, dans une base de données SQLite,
sur le Web ou dans tout autre emplacement de stockage persistant
auquel votre application peut accéder.
ANDROID SDK
Contient les bibliothèques (packages ou libraries) de bases fournies par le
système pour le développement d’applications, plus d’autres outils de
compilation et de construction du package apk.
Il fournit aussi des outils nécessaires au test des applications :
❑ émulateurs Android Virtual Device,
❑ L’outil de débogage (DDMS)
❑ l’Android Device Bridge (adb) pour la
communication avec le mobile virtuel
ou physique.
❑ Un certain nombre d’exemples
d’applications
❑ … 18
19
L’émulateur, un outil indispensable
L’émulateur Android permet de simuler plusieurs terminaux
Informations nécessaires à la configuration d’un AVD :
❑ Une version cible du SDK
❑ Des informations sur le stockage (mémoire, carte SD)
❑ Résolution de l’appareil choisi
20
LES MEILLEURS ÉMULATEURS ANDROID EN 2019
1 BlueStacks App Player
2 Nox
3 KOPLAYER
4 AndY
5 MeMU

Contenu connexe

Similaire à Environnement Android.pdf

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.pdfRihabBENLAMINE
 
cours Android.pptx
cours Android.pptxcours Android.pptx
cours Android.pptxYaminaGh1
 
Hackathon Android Abidjan
Hackathon Android  AbidjanHackathon Android  Abidjan
Hackathon Android AbidjanBacely YoroBi
 
Composants d-une application Android.ppt
Composants d-une application Android.pptComposants d-une application Android.ppt
Composants d-une application Android.pptmahamaalej3
 
chapitre-1-introduction-plateforme-android (2).pdf
chapitre-1-introduction-plateforme-android (2).pdfchapitre-1-introduction-plateforme-android (2).pdf
chapitre-1-introduction-plateforme-android (2).pdfolfaharrabi2
 
Chapitre 1-introduction-plateforme-android
Chapitre 1-introduction-plateforme-androidChapitre 1-introduction-plateforme-android
Chapitre 1-introduction-plateforme-androidSalah Gharbi
 
Développement Android
Développement AndroidDéveloppement Android
Développement AndroidFranck SIMON
 
Introduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxIntroduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxBruno Cornec
 
Codedarmor 2012 - 03/04 - Android, What else?
Codedarmor 2012 - 03/04 - Android, What else?Codedarmor 2012 - 03/04 - Android, What else?
Codedarmor 2012 - 03/04 - Android, What else?codedarmor
 
Applications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobilesApplications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobilesAhmed-Chawki Chaouche
 
OCTO - Sécurité android
OCTO - Sécurité androidOCTO - Sécurité android
OCTO - Sécurité androidOCTO Technology
 
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"Smile I.T is open
 

Similaire à Environnement Android.pdf (20)

Android
AndroidAndroid
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
 
Nour C2I
Nour C2INour C2I
Nour C2I
 
cours Android.pptx
cours Android.pptxcours Android.pptx
cours Android.pptx
 
Hackathon Android Abidjan
Hackathon Android  AbidjanHackathon Android  Abidjan
Hackathon Android Abidjan
 
Composants d-une application Android.ppt
Composants d-une application Android.pptComposants d-une application Android.ppt
Composants d-une application Android.ppt
 
cours.pdf
cours.pdfcours.pdf
cours.pdf
 
chapitre-1-introduction-plateforme-android (2).pdf
chapitre-1-introduction-plateforme-android (2).pdfchapitre-1-introduction-plateforme-android (2).pdf
chapitre-1-introduction-plateforme-android (2).pdf
 
Chapitre 1-introduction-plateforme-android
Chapitre 1-introduction-plateforme-androidChapitre 1-introduction-plateforme-android
Chapitre 1-introduction-plateforme-android
 
1-android.pdf
1-android.pdf1-android.pdf
1-android.pdf
 
Intro Android
Intro AndroidIntro Android
Intro Android
 
Développement Android
Développement AndroidDéveloppement Android
Développement Android
 
Android 1
Android 1Android 1
Android 1
 
Introduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxIntroduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à Linux
 
Codedarmor 2012 - 03/04 - Android, What else?
Codedarmor 2012 - 03/04 - Android, What else?Codedarmor 2012 - 03/04 - Android, What else?
Codedarmor 2012 - 03/04 - Android, What else?
 
Applications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobilesApplications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobiles
 
android.pdf
android.pdfandroid.pdf
android.pdf
 
OCTO - Sécurité android
OCTO - Sécurité androidOCTO - Sécurité android
OCTO - Sécurité android
 
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
 
Programmation sous Android
Programmation sous AndroidProgrammation sous Android
Programmation sous Android
 

Plus de RihabBENLAMINE

presentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfpresentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfRihabBENLAMINE
 
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdfTutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdfRihabBENLAMINE
 
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdfCM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdfRihabBENLAMINE
 
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdfRihabBENLAMINE
 
coursphp-chap3-230321082859-121d6678.pptx
coursphp-chap3-230321082859-121d6678.pptxcoursphp-chap3-230321082859-121d6678.pptx
coursphp-chap3-230321082859-121d6678.pptxRihabBENLAMINE
 
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdfCours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdfRihabBENLAMINE
 
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdfVirtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdfRihabBENLAMINE
 
416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdf416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdfRihabBENLAMINE
 
Interace Utilisateur.pdf
Interace Utilisateur.pdfInterace Utilisateur.pdf
Interace Utilisateur.pdfRihabBENLAMINE
 
Bases de données sous Android.pdf
Bases de données sous Android.pdfBases de données sous Android.pdf
Bases de données sous Android.pdfRihabBENLAMINE
 
coursphp-230411142526-784b67e9.pdf
coursphp-230411142526-784b67e9.pdfcoursphp-230411142526-784b67e9.pdf
coursphp-230411142526-784b67e9.pdfRihabBENLAMINE
 
0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdfRihabBENLAMINE
 
016834638650_suitechap1.pptx
016834638650_suitechap1.pptx016834638650_suitechap1.pptx
016834638650_suitechap1.pptxRihabBENLAMINE
 
Chapitre 04-B - Langages de consultation.pdf
Chapitre 04-B - Langages de consultation.pdfChapitre 04-B - Langages de consultation.pdf
Chapitre 04-B - Langages de consultation.pdfRihabBENLAMINE
 
p01b_portelogique_boole.pdf
p01b_portelogique_boole.pdfp01b_portelogique_boole.pdf
p01b_portelogique_boole.pdfRihabBENLAMINE
 
architecture-des-ordinateurs.pdf
architecture-des-ordinateurs.pdfarchitecture-des-ordinateurs.pdf
architecture-des-ordinateurs.pdfRihabBENLAMINE
 

Plus de RihabBENLAMINE (20)

presentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfpresentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdf
 
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdfTutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
 
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdfCM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
 
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
 
coursphp-chap3-230321082859-121d6678.pptx
coursphp-chap3-230321082859-121d6678.pptxcoursphp-chap3-230321082859-121d6678.pptx
coursphp-chap3-230321082859-121d6678.pptx
 
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdfCours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
 
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdfVirtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
 
416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdf416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdf
 
Interace Utilisateur.pdf
Interace Utilisateur.pdfInterace Utilisateur.pdf
Interace Utilisateur.pdf
 
Firebase.pdf
Firebase.pdfFirebase.pdf
Firebase.pdf
 
Bases de données sous Android.pdf
Bases de données sous Android.pdfBases de données sous Android.pdf
Bases de données sous Android.pdf
 
Les Activités.pdf
Les Activités.pdfLes Activités.pdf
Les Activités.pdf
 
coursphp-230411142526-784b67e9.pdf
coursphp-230411142526-784b67e9.pdfcoursphp-230411142526-784b67e9.pdf
coursphp-230411142526-784b67e9.pdf
 
0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf
 
016834638650_suitechap1.pptx
016834638650_suitechap1.pptx016834638650_suitechap1.pptx
016834638650_suitechap1.pptx
 
PHP_intro.pdf
PHP_intro.pdfPHP_intro.pdf
PHP_intro.pdf
 
Chapitre 04-B - Langages de consultation.pdf
Chapitre 04-B - Langages de consultation.pdfChapitre 04-B - Langages de consultation.pdf
Chapitre 04-B - Langages de consultation.pdf
 
chapitre-2.pptx.pdf
chapitre-2.pptx.pdfchapitre-2.pptx.pdf
chapitre-2.pptx.pdf
 
p01b_portelogique_boole.pdf
p01b_portelogique_boole.pdfp01b_portelogique_boole.pdf
p01b_portelogique_boole.pdf
 
architecture-des-ordinateurs.pdf
architecture-des-ordinateurs.pdfarchitecture-des-ordinateurs.pdf
architecture-des-ordinateurs.pdf
 

Environnement Android.pdf

  • 1. Samir Akhrouf Environnement Android Université Mohamed Boudiaf de M’Sila Faculté des Mathématique et de l’Informatique Département d’Informatique Année universitaire 2019-2020
  • 2. 2 ❑C’est un système d’exploitation OPEN SOURCE pour terminaux mobiles (Smartphones, Tablet ,…. Introduction 1/2
  • 3. ❑ Initialement, Android a été lancé par Andy Rubin en 2003, son idée était de développer un système d'exploitation pour les appareils photo numériques, pas les téléphones. ❑ Il a changé d'avis rapidement, et s'est rendu compte que la technologie allait bientôt exploser sur les mobiles, il a commencé à développer le système d'exploitation pour les téléphones mobiles. Andy Rubin 2003 Android 3
  • 4. ❑Après la sortie de l'iPhone d'Apple en 2007, Open Handset Alliance (OHA) a vu le jour et a eu comme première tâche de développer des normes ouvertes pour les mobiles. ❑Aujourd’hui, Android est le système d’exploitation mobile le plus utilisé à travers le monde avec plus de 86 % de la part du marché des OS. ❑Après une énorme perte, Andy Rubin a décidé de fermer Android et Google l’a racheté le 17 août 2005. •Google a racheté •Android Inc. 2005 OHA Consortium lancé par google 2007 •Android OS 86,2 % •Apple iOS 12,9 % 2019 4
  • 5. Introduction 2/2 ❑ Libre : Il peut fonctionner sur de nombreux appareils différents de nombreux fabricants ❑ Extensible : fournit un kit de développement logiciel contenant plusieurs outils aidant à développer des projets et des modules logiciels pour créer des applications pour les utilisateurs d'Android. ❑ Faciles à développer : toutes les API mises à disposition facilitent et accélèrent grandement le travail. Ces APIs sont très complètes et très faciles d'accès. De manière un peu caricaturale, on peut dire que vous pouvez envoyer un SMS en seulement deux lignes de code. ❑ Facile à vendre : le Play Store (anciennement Android Market) est une plateforme immense et très visitée ; c'est donc une mine d'opportunités pour quiconque possède une idée originale ou utile. ❑ Ingénieuse : l'architecture d'Android est inspirée par les applications composites, et encourage par ailleurs leur développement. Ces applications se trouvent essentiellement sur internet et leur principe est que vous pouvez combiner plusieurs composants totalement ❑ Il représente un écosystème pour les applications mobiles par ses différents outils, acteurs et marché. 5
  • 6. 6 Plateforme Android Le système d’exploitation Android est conçu sous forme de pile de cinq couches principales, chacune est une abstraction de la couche supérieure. Android est basé sur : ❑un noyau Linux au-dessus duquel il y a ❑le Hardware Abstraction Layer (HAL) qui est une couche d’abstraction du matériel. ❑Ensuite on retrouve un certain nombre de bibliothèques de C et C++ permettant d’utiliser un certain nombre de composants Android. ❑ Juste après, on retrouve, la plateforme de développement par ses différents outils. ❑La dernière couche englobe les applications utilisateurs.
  • 8. 8 1.Linux kernel ❑ Il est basé sur un noyau 2.6 de Linux, ❑ il assure la gestion multitâche préemptive des processus. ❑ Il fournit les services système de bas-niveau tel que la gestion de la mémoire, stockage, énergie, communication réseaux et les drivers des différentes unités matérielles. 2. Hardware Abstraction Layer (HAL) Cette couche se situe entre les librairies et le kernel linux, elle fournit les interfaces que doivent implémenter les drivers kernel. Cette couche sépare la plateforme logique des interfaces matérielles. Le but de cette couche est de faciliter le portage des librairies sur différents matériels.
  • 9. Les ingénieurs d'Android ont décidé de faire cette couche car : ❑ les drivers kernel n’ont pas tous des interfaces standardisées. ❑ les drivers kernel sont sous licence GPL ce qui exposerait les interfaces propriétaires des fabricants. Les fabricants veulent pouvoir garder ces interfaces en "closed source" ❑ Android a des besoins spécifiques pour les drivers kernel. 3. Librairies Un ensemble de bibliothèques C/C++ (Natives) utilisées par les composants systèmes ; elles peuvent être aussi utilisées par les développeurs via le SDK. Elle contient entre autres : ❑ Libc: bibliothèque c standard, SSL: Secure Socket Layer communication ❑ SGL: dessin 2D, OpenGL|ES: image 3D ❑ Media Framework: media codecs, SQLite: gestionnaire de BDD SQLite ❑ WebKit: noyau du browser web, FreeType: fonts Bitmap et vectorielles ❑ SufraceManager: window manager with off-screen buffering. 9
  • 10. 4. Runtime Cette couche se situe au-dessus des libraires C/C++, elle se compose du "cœur" du Framework et de la machine virtuel dalvik. Les applications Java développées pour Android doivent être compilées au format dalvik exécutable (.dex) avec l'outil dx. Cet outil compile les .java en .class et ensuite il convertit ces .class en .dex. Un .dex peut contenir plusieurs classes. Les strings dupliquées et autre constantes utilisées dans de multiples classes sont regroupées dans un .dex. Le bytecode utilisé dans les .dex est le Dalvik bytecode et non le java Bytecode. La VM Dalvik a quelques caractéristiques spécifiques par rapport aux autres VM: ❑ la VM a été "dégraissée" pour utiliser moins d'espace mémoire, ❑ pas de compilation à la volée (JIT), ❑ elle utilise son propre bytecode et pas le Java bytecode, ❑ la table des constantes a été modifié pour n'utiliser que des indexes de 32 bits afin de simplifier l'interpréteur. 10
  • 11. Core Libraries : un ensemble d’API écrites en java que le développeur peut appeler dans son programme. Ceci inclut les packages qui sont dans la racine telles que : android.view, android.widget, android.media, … 5. Application framework C’est l’ensemble des services offerts par Android pour l’utilisateur. Ces composants peuvent être réutilisés par le développeur pour les étendre à d’autres finalités. ❑Les développeurs ont le plein accès à tous les API de la Framework utilisées par les applications de base (core apps) ❑Les développeurs peuvent remplacer ces composants. 11
  • 12. Rôle System View Utilisé pour construire une application. Ceci inclut : lists, grids, textboxes, buttons, web browsers Content Provider Permet à une application d’accéder à des données externes et de partager les sienne avec d’autres applications. Resource Manager Permet d’accéder à des ressources telles que (strings, graphics, and layout files) Notification Manager Gestionnaire des alertes Activity Manager Gère le cycle de vie d’une activité Telephony manager Gère tous les appels téléphoniques. Locations manager Gère les localisations GPS, opérateur ou Wifi 12
  • 13. 6. Applications Cette couche englobe toutes les applications tournant sous Android, que se soient celles livré par la plateforme, telle que google Map, mail, …ou celles développées par des tiers. Sécurité dans le système Android Chaque application est exécutée dans une sandbox: ❑Android est un système Linux multi‐utilisateur ❑Chaque application est un utilisateur différent ❑Chaque fichier de l'application n'est accessible que par cette application ❑Par défaut, chaque processus possède sa machine virtuelle ❑Chaque application a son propre processus Linux 13
  • 14. Une application Android est construite sur la base de quatre composants fondamentaux : Activity, Service, ContentProvider et BroadcastReceiver. Chaque composant est un point d'entrée par lequel le système ou un utilisateur peut entrer dans votre application. Ces composants communiquent entre eux, et entre d’autres applications, via les Intents. Les composants fondamentaux d’une application Android 14
  • 15. 15 Qu’est-ce qu’un programme Android? Android offre un framework riche mais suffisamment rigide et étanche: ❑ Du XML pour les interfaces ❑ Les activités : briques de base d’une application ❑ Les services : conçus pour durer ❑ Les fournisseurs de contenus : abstraction de données ❑ Les intentions (intents): interagir avec le système Android permet d’accéder aux fonctionnalités avancées de l’appareil: ❑ Stockage (base de données, support externe) ❑ Réseau (Wifi, Bluetooth, 3G, ...) ❑ Multimédia (lecture audio, photo, caméra) ❑GPS (géolocalisation des applications par différents moyens) ❑Services de téléphonie (appels, SMS)
  • 16. 1. Activité Une activité est la composante principale d’une application sous Android. L'activity est le métier de l'application et possède généralement une View au minimum, c'est-à-dire un écran graphique. Elle hérite de la classe Activity (ou AppCompatActivity) de la plateforme et doit obligatoirement surcharger le callback onCreate. 2. Service C’est uncomposant polyvalent qui s'exécute en arrière-plan pour effectuer des opérations de longue durée ou des tâches pour des processus distants. Il ne fournit pas, généralement, l'interface utilisateur. 16
  • 17. 3. BroadCast Receiver C’est un composant qui permet au système de transmettre des événements à l'application en dehors d’un flux utilisateur normal, permettant à l'application de répondre aux annonces de diffusion à l’échelle du système. 17
  • 18. 4. Content Provider Gère un ensemble partagé de données d'application que vous pouvez stocker dans le système de fichiers, dans une base de données SQLite, sur le Web ou dans tout autre emplacement de stockage persistant auquel votre application peut accéder. ANDROID SDK Contient les bibliothèques (packages ou libraries) de bases fournies par le système pour le développement d’applications, plus d’autres outils de compilation et de construction du package apk. Il fournit aussi des outils nécessaires au test des applications : ❑ émulateurs Android Virtual Device, ❑ L’outil de débogage (DDMS) ❑ l’Android Device Bridge (adb) pour la communication avec le mobile virtuel ou physique. ❑ Un certain nombre d’exemples d’applications ❑ … 18
  • 19. 19 L’émulateur, un outil indispensable L’émulateur Android permet de simuler plusieurs terminaux Informations nécessaires à la configuration d’un AVD : ❑ Une version cible du SDK ❑ Des informations sur le stockage (mémoire, carte SD) ❑ Résolution de l’appareil choisi
  • 20. 20 LES MEILLEURS ÉMULATEURS ANDROID EN 2019 1 BlueStacks App Player 2 Nox 3 KOPLAYER 4 AndY 5 MeMU