Développement
Mobile
Manal EL BAJTA
2023/2024
But de cours
Le but de ce cours est de découvrir la programmation Mobile en se basant sur
l’exemple Android, sa plate-forme de développement et les spécificités du
développement sur smartphone ou tout autre dispositif mobile. Le cours vise
aussi à se familiariser avec l’architecture distribuée des applications mobile
basée sur la consommation de services Web.
Les principales notions abordées dans ce cours sont:
● Cycle de vie d’une activité. ● Les Intent.
● Les gabarits : LinearLayout, RelativeLayout, ConstraintLayout ● Persistence des données : Sqlite.
● Les Vues de base. ● Les services.
● ListView personnalisée et Galeries ● Accès aux services web.
3
Plan du cours
1 Introduction 7 Connectivité
2 L’environnement Android 8 Les services Web
3 Interfaces graphiques 9 Divers
4 Les Intents 10 Annexes: outils
5 Persistance des données 11 Annexes: codes sources
6 Programmation concurrente 12 Bibliographie
4
1- Introduction: Evolution des OS Mobile
5
Particularités du développement d’applications
Mobiles
Interfaces Interactives
Mémoire vive et Stockage
Utilisation des
CPU et Batterie
Utilisation du
Toujours
Utilisation
de la
penser
optimisation
Utilisation des
Ressources Réseau
6
2- L’environnement ● 2.1 Introduction
● 2.2 Android
Android ●
●
2.3
2.4
Les ressources
Les activités
7
Evolution
Il est important de prendre la mesure des
choses :
● juillet 2011: 550 000 activations par jour
● décembre 2011: 700 000 activations par
jour
● sept. 2012: 1.3 millions d'activations par
jour (Wikipedia)
● avril 2013: 1.5 millions d'activations par jour
(Wikipedia)
● Il y aurait actuellement un parc de plus de
2.5 milliard d'appareils équipés du système
Android ([Link]). 8
Historique des versions Honeycomb 3.0 11 02/2011
Ice Cream Sandwich 4.0 14 10/2011
Le nombre de release est
Jelly Bean 4.1 16 07/2012
impressionnant [Version]:
Kit Kat 4.4 19 10/2013
Lollipop 5.0 21 10/2014
Nom Version API Date
Marshmallow 6.0 23 10/2015
Android 1.0 1 09/2008
Nougat 7.0 24 08/2016
Petit Four 1.1 2 02/2009
Oreo 8.0 26 08/2017
Cupcake 1.5 3 04/2009
Pie 9.0 28 08/2018
Donut 1.6 4 09/2009
Android 10 10.0 29 09/2019
Gingerbread 2.3 9 12/2010
Android 11 11.0 30 09/2020
9
Le système d’exploitation
Android
Android est un système de la famille Linux, pour une fois sans les outils GNU. L'OS s'appuie sur:
● un noyau Linux (et ses drivers)
● une couche d'abstraction pour l'accès aux capteurs (HAL)
● une machine virtuelle: Dalvik Virtual Machine
● des applications (navigateur, gestion des contacts, application de téléphonie...)
● des bibliothèques (SSL, SQLite, OpenGL ES, etc...)
[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, plus compactes 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.
10
11
Coder pour Android?
L'écosystème d'Android s'appuie sur deux piliers:
● le langage Java (depuis son apparition)
● le SDK facilitant la tâche du développeur
⇝ récemment
● le langage Kotlin (par Jetbrains )
Le kit de développement donne accès à des exemples, de la documentation mais surtout à l'API de
programmation du système et à des émulateurs 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.
Le plugin Android Development Tool permet d'intégrer les fonctionnalités du SDK à Eclipse.
Android Studio offre un environnement de développement Android complet qui remplace l’ADT.
12
Environnement de développement : IDE
Eclipse+ADT vs Android Studio
13
Il faut disposer d’une vrais station de travail. Les
Ǫuel matériel ? recommandations matérielles sont les suivantes, mais
plus la machine est performante moins on a de
problèmes :
14
Ǫue faut-il installer ?
Pour éviter d’avoir des problèmes et perdre du temps pendant nos séances de TP, et pour faciliter le
transfert de vos projets entre vos machines et celles des salles ou celles de vos collègues, il vaut
mieux suivre les mêmes procédures et installer les mêmes composantes ci dessous :
1) Android Studio, dernière version toujours.
2) à la fin de l’installation, ouvrir le SDK Manager (Menu Tools ⇢ SDK Manager)
3) Dans l’onglet “SDK Plateforme” installer le SDK de la dernière API (V. 30), celui de l’API 21, API 23, et
éventuellement celui de l’API de votre propre téléphone si vous avez un Smartphone Android.
4) Installer les Images Système des versions ci-dessus.
5) On peut éventuellement installer les Google APIs si on prévoit de développer des applications basées
sur des services Google (Maps par exemple, mais nous n’en avons pas besoin dans ce cours)
6) Dans l’onglet “SDK Tools”, installer tout sauf NDK, Command-Line Tools, LLDB et CMake. Pour les
Build-Tools installer la dernière version pour chaque numéro d’API que vous avez précédemment
installé.
7) Dans le AVD Manager (Menu Tools ⇢ AVD Manager) créer au moins un émulateur pour API 23 et un
pour API 30. Réduire la configuration de la mémoire si votre machine n’en dispose pas de quantité
suffisante. Si vous n’y arrivez pas, installez un émulateur externe comme Genymotion par exemple.
15
Installation d’android Studio
● Liens utiles:
Tutoriel: [Link]
Téléchargement de JAVA:
[Link]
Téléchargement d’android studio (4.1.2 for Windows 64-bit) et les outils
SDK:
[Link]
16
SDK MANAGER
17
Composant d’une application Android
18
Android Virtual Device
●Pour tester vos applications Android vous
aurez besoin d’un Emulateur Android.
●Les gestion des Emulateur Android sont
accessibles par le menu Tools> AVD Manager.
●Avec le bouton Create Virtual device, vous
pouvez ajouter différents versions d’émulateurs
virtuel.
●Le démarrage d’un émulateur consomme
beaucoup de
ressources. Donc il faut savoir quand le
démarrer et quand l’arrêter.
19
Structure d’un projet android studio
20
Structure d’un projet android studio
21
Environnement de développement
defaultConfig {
Projet : applicationId "[Link]"
minSdkVersion 21
targetSdkVersion 30
● minSdkVersion (obligatoire) versionCode 1
● targetSdkVersion (non obligatoire) }
versionName "1.0"
● maxSdkVersion (déconseillé)
Android Studio organise le projet suivant les différentes parties les plus
importantes d’une application Android :
● les “manifests”,
● les fichiers “java”,
● les fichiers “ressources”,
● les scripts “gradle” 22