introduction à la plateforme android - technologue pro · 2017. 9. 22. · smartphones, pda,...

26
ETUDE DE CAS: ANDROID Imene Sghaier Chapitre IV

Upload: others

Post on 14-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

ETUDE DE CAS: ANDROID

Imene Sghaier

Chapitre IV

Page 2: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

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

Page 3: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

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

Page 4: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

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

Page 5: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

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

Page 6: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

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

Page 7: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

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

Page 8: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

ARCHITECTURE DU SYSTÈME ANDROID

8

http://code.google.com/android/what-is-android.html

I. Sghaier- Systèmes d'exploitation pour mobiles

Page 9: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

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

Page 10: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

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

Page 11: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

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

Page 12: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

LA PILE DES OUTILS DE DÉVELOPPEMENT POUR ANDROID

12

I. Sghaier- Systèmes d'exploitation pour mobiles

Page 13: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

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

Page 14: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

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

Page 15: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

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

Page 16: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

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

Page 17: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

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

Page 18: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

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

Page 19: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

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

Page 20: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

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

Page 21: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

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

Page 22: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

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

Page 23: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

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

Page 24: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

DÉPLOIEMENT D’UNE APPLICATION

24

I. Sghaier- Systèmes d'exploitation pour mobiles

Page 25: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

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

Page 26: Introduction à la plateforme Android - Technologue Pro · 2017. 9. 22. · smartphones, PDA, tablettes… Android désigne à la fois: Un environnement de développement (API) Un

RÉFÉRENCES

developer.android.com

https://openclassrooms.com/courses/creez-des-applications-pour-android

26