Développement Mobile
sous Android
1 - La plateforme Android
FST– 2021/2022
Objectifs de cette partie
• Définir les principaux concepts de la
programmation modile.
• Etudier la plateforme Android.
• Comparer les différentes versions d'Android.
• Comprendre le cycle de production et de
distribution d'une application Android.
• Comprendre la structure d'un projet Android.
6
Introduction - Historique
2003 2005 2007 2008
• Naissanc • Rachat de • Annonce • Premier
e de la la startup d'Android mobile
startup par +SDK sous
Android Google Open Android :
inc. inc Handset le T-
Alliance Mobile
G1
7
Introduction - Historique
• Avant Android Studio, de 2009 à 2014, Google propose
comme environnement de développement officiel une
distribution spécifique de l'environnement Eclipse,
contenant le SDK d'Android.
• Android Studio est annoncé le 15 mai 2013 lors du
Google I/O et une version Early Access Preview est
disponible le jour même.
• Le 8 décembre 2014, Android Studio passe de version
beta à version stable 1.0. L'environnement devient
alors conseillé par Google, et Eclipse est délaissé.
• On parle aujourd’hui (2021) de la dernière version de
Android Studio 4.1.2
8
Introduction-Quelques version
Android
9
Introduction - Avantages de la
plateforme Android
Point de vue Point de vue Point de vue Point de vue
constructeur utilisateur bricoleur développeur
• Système Linux • Système • Projet Open • Applications
+Java fonctionnel, Source C++ / développées
intuitif, Java en syntaxe
évolutif Java SDK
complet
fourni
10
Introduction - Avantages de la
plateforme Android
• Android est un système d'exploitation mobile basé sur le noyau Linux.
• Les points clés d’Android en tant que plate-forme :
• innovante car toutes les dernières technologies de téléphonie y sont
intégrées : écran tactile, accéléromètre, GPS, appareil photo numérique etc.
• accessible car en tant que développeur vous n’avez pas à acheter de maté-
riel spécifique (si vous voulez aller plus loin que l’utilisation d’un émulateur,
un téléphone Android pour effectuer vos tests vous sera toutefois
nécessaire), ni à connaître un langage peu utilisé ou spécifique : le
développement sur la plateforme Android est en effet réalisé en langage
Java, un des langages de programmation les plus répandus.
• ouverte parce la plate-forme Android est fournie sous licence open source,
permettant à tous les développeurs – et constructeurs – de consulter les
sources et d’effectuer les modifications qu’ils souhaitent.
11
L’environnement Android
13
Composition d’une application
• Une application Android
est un assemblage de
composants liés grâce à
un fichier de
configuration.
• Les activités : peut être assimilée à
un écran structuré par un ensemble
de vues composant son interface de
façon logique. Une vue est
composée d’une hiérarchie de vues
contenant elles-mêmes d’autres
vues.
• Exemple : un formulaire d’ajout
de contacts.
• Une application comportant
plusieurs écrans, possédera donc
autant d’activités.
14
Composition d’une application
• Une application Android
est un assemblage de
composants liés grâce à
un fichier de
configuration.
• Les vues : les éléments de
l’interface graphique que
l’utilisateur voit et sur
lesquels il pourra agir. Les
vues contiennent des
composants, organisés
selon diverses mises en
page (les uns à la suite
des autres, en grille…).
15
Composition d’une application
• Une application Android est un
assemblage de composants liés
grâce à un fichier de
configuration.
• Les ressources : peuvent être
des fichiers XML, des fichiers
images et autres. Elle sont
stockées dans le répertoire res.
16
Composition d’une application
• Une application Android
est un assemblage de
composants liés grâce à un
fichier de configuration.
• Le fichier de configuration
(manifeste) : c’est un fichier
indispensable à chaque application
qui décrit :
le point d’entrée de l’application
quels composants constituent le
programme
les permissions nécessaires à
l’exécution du programme (accès à
Internet, accès à l’appareil
photo...)
17
18
Composition d’une application
18
Composition d’une application
manifests : description de l’application
java : les sources, rangés par paquetage
res : ressources = fichiers XML et images de
l’interface, avec des sous-dossiers
drawable : icônes utilisés dans l’interface
layout : interfaces (disposition des vues sur les
écrans)
menu : menus contextuels ou d’application (Le
menu contextuel
est le menu qui s'ouvre lorsqu'un utilisateur
clique d'une façon
particulière sur un objet de l'interface graphique,
offrant ainsi une liste d'options qui varient selon
le type de l'objet ciblé.)
mipmap : images utilisés dans l’interface
values : valeurs de configuration, textes. . .
Gradle scripts : c’est l’outil de compilation du projet
19
Composition d’une application
• Une application Android est
composée de :
Fichiers Sources Java
compilés pour une machine
virtuelle
Fichiers XML appelés
ressources : interface, textes.
..
Fichiers de données
supplémentaires
Fichier Manifeste =
description du contenu du
logiciel 20
Composition d’une application
• Autres composants :
- Intention : permet de diffuser des messages en demandant la réalisation d’une
action. L’accès aux autres applications et au système étant restreinte par le modèle
de sécurité Android, ces objets permettent aux applications de fournir ou
demander des services ou des données. La transmission se fait à travers tout le
système et peut cibler précisément une activité ou un service.
- Service : composant qui fonctionne en tâche de fond, de manière invisible. Ses
principales utilisations sont la mise à jour de sources de données ainsi que
d’activités visibles et le déclenchement de notifications.
- Fournisseur de contenu : permet de gérer et de partager des informations. Un
même fournisseur permet d’accéder à des données au sein d’une application et
entre applications.
- Gadget : un composant graphique qui s’installe sur le bureau Android. Le calendrier
qui affiche de l’information ou le lecteur audio qui permet de contrôler la lecture
de fichiers sont deux exemples de gadgets que l’on trouve souvent sur un écran
d’accueil.
- Notification : signale une information à l’utilisateur sans interrompre ses actions en
cours.
21
Architecture Android
• La plate-forme Android est
composée de différentes
couches :
• un noyau Linux
• Des bibliothèques
graphiques, multimédias.
• une machine virtuelle Java
adaptée
• un framework applicatif
proposant des
fonctionnalités de gestion
de fenêtres, de téléphonie,
de gestion de contenu...
• des applications dont un
navigateur web, une
gestion des contacts, un
calendrier…
22
Architecture Android
• Premier niveau : noyauLinux
• Android s’appuie sur un noyau (Kernel en anglais)
• Le noyau est l'élément du système d'exploitation qui permet
de faire le pont entre la partie matérielle et la partie logicielle
: on remarque que cette couche est la seule qui gère le
matériel.
• La version du noyau utilisée avec Android est une version
conçue specialement pour l'environnement mobile, avec une
gestion avancée de la batterie et une gestion particulière de
la mémoire.
23
Architecture Android - Machine
Virtuelle Dalvik
• Offre l'avantage de toute machine virtuelle
– Couche d'abstraction entre le développeur d'applications et des
implémentations matérielles particulières
• La VM Dalvik n'est pas une VM Java
– Tient compte des contraintes de CPU et mémoire
– Exécute des fichiers .dex (Dalvik Executable) optimisés
• La VM créé une instance Dalvik pour chaque application
(i.e. processus lourds)
– Les applications sont totalement indépendantes ("sandbox")
• Espaces protégés (mémoire, stockage)
• Évite un plantage généralisé !
24
Environnement de dvp
Android Studio
• Google à créé un IDE complet pour la création
d'application mobile Android nommé Android Studio,
annoncé lors du Google le 15 mai 2013.
• Il est open source et disponible gratuitement,
permettant de réaliser des projets sur différents types
de support, tablette ou Smartphone.
• Il offre :
un éditeur de sources .
des outils de compilation et de lancement d’AVD (Android
Virtual Device) . 26
Environnement de dvp -
Périphérique virtuel (AVD)
27
Environnement de dvp -
Émulateur : limitations
• Lent au démarrage et à l'usage
• Fonctionnalités non-disponibles
– Appareil photo (Camera↔Webcam supporté)
– Vibreur
– Appels téléphoniques réels
– Capteurs en général
– Connexions USB
– Évolution de la charge de la batterie
28
Environnement de dvp -
Périphérique physique
• Se passer de l'émulateur
– Utiliser un appareil
• Activation du mode debug USB du périphérique
– Les étapes d'activation du débogage USB dépendent de la version
de Android s'exécutant sur le périphérique cible
• Appareiller le périphérique en USB
– Mac OS X : aucune manipulation n'est nécessaire
– Windows et Linux : nécessite le driver du périphérique
29
Types d'applications Android
Application Application d'arrière
plan
de premier plan
(ex: répondeur
(ex: un jeu) automatique aux SMS)
Intermittente (ex: Widget (ex: météo du
lecteur de média) jour)
30
Quelques conseils
• Environnement d’exécution contraint
• Les appareils mobiles ont:
– Une puissance de processeur plus faible
– Une RAM limitée
– Des capacités de stockage permanant limitées
– Des petits écrans avec de faibles résolutions
– Des connexions réseau moins fiables
– Des batteries à autonomie limitée
– Des cout élevés de transfert de données
– Des taux de transfert plus lents avec une latence élevée
34