Université Constantine 2
Dr. CHAOUCHE A.-C.
Faculté des nouvelles technologies
ahmed.chaouche@univ-constantine2.dz
– Cours 2 –
Chapitre 2 : Programmation mobile sous Android
Développement d’applications mobiles
2018/2019. Semestre 1
Université Constantine 2
Etudiants concernés
Faculté/Institut Département Niveau Spécialité
2018/2019. Semestre 1
Dr. CHAOUCHE A.-C.
Faculté des nouvelles technologies
ahmed.chaouche@univ-constantine2.dz
Développement d’applications mobiles
Licence 3 Technologies de l’information (TI)Nouvelles technologies IFA
Licence 3 Science de l’informatique (SCI)Nouvelles technologies IFA
– Cours 2 –
Chapitre 2 : Programmation mobile sous Android
Université Constantine 2 3
Prérequis
Systèmes d’exploitations
Langage JAVA
Objectifs du cours
Comparer les applications mobiles et Web
Connaitre les systèmes d’exploitation mobiles
Comprendre l’architecture du Android OS
Résumé
© Dr. Chaouche A.-C.
Université Constantine 2 4
Développement Mobile : Natif vs. Web
© Dr. Chaouche A.-C.
Application native Application Web
Portabilité
Développement spécifique à
chaque plateforme
Navigateur Web
Développement
Nécessité du SDK
Maîtrise d’un langage
Langage Web (HTML, JS, CSS,
PHP, …)
Mise à jour
Re-téléchargement à travers le
App Store
Fichiers au niveau du serveur
Web
Disponibilité Online et offline
Online (connexion internet
nécessaire)
Fonctionnalités
Toutes les fonctionnalités du
mobile (GPS, voix, notifications,
capteurs, …)
Limitées aux possibilités du
navigateur
Université Constantine 2 5
OS mobiles
© Dr. Chaouche A.-C.
Plateforme/OS Langage IDE SDK
Symbian OS 9.5
Code natif C++
Java
Eclipse
Carbide.c++
Java ME
BlackBerry 10 (RIM)
Java
C/C++
Eclipse
BlackBerry 10 Native
SDK
Windows Phone 10
Windows 10
C++
C#
VB .Net
Visual studio
Windows Phone SDK
.NET Framework 4.6
SDK
iOS 12
Swift
objectif-C
Xcode IPhone SDK
Android 9
Java
Kotlin
Code natif C++
Android studio
Android SDK +
JDK
Université Constantine 2 6
Part de marché des OS mobiles
© Dr. Chaouche A.-C.
OS Part de marché
Android 73.1 %
iOS 20.3 %
Windows 0.7 %
BlackBerry OS 0.0 % (arrété en 2016)
Symbian OS 0.0 % (arrété en 2013)
Source GlobalStat – 4ème trimestre 2017
Université Constantine 2 7
Startup créée en 2003 et rachetée par Google en 2005
Open Alliance Handset (OHA) en 2007 :
Regroupement de + de 50 entreprises : fabricants de matériel, opérateurs
mobiles, développeurs d’applications, …
Objectif : développer des normes ouvertes pour des applications de téléphonie
mobile
1er mobile sous
Android, en 2008 :
T-Mobile G1
Android OS – OHA
© Dr. Chaouche A.-C.
Université Constantine 2 8
Matériel supportant Android
Tablette et Smartphone
Netbook et appareil photo
Télévision et Frigo
Tableau de bord (auto)
Android wear
Google glass
Android OS – Matériel
© Dr. Chaouche A.-C.
Université Constantine 2 9
Constructeurs
Système linux
Projet open source
Licence Apache (coût nul)
Développeurs
Langage Java
Kit de développement (SDK) gratuit
Android Market
Utilisateurs
Système fonctionnel, intuitif et évolutif
Multi-tâches
Android OS – Points forts
© Dr. Chaouche A.-C.
Université Constantine 2 10
Noms de code : Desserts
Version actuelle : 9 (6 aout 2018)
Versions d’Android OS
© Dr. Chaouche A.-C.
Android 9 Pie
Université Constantine 2 11
Versions d’Android OS – Distribution
© Dr. Chaouche A.-C.
Version Nom API Distribution
9.0 Pie 28 0.1 %
8.1
8.0
Oreo
27
26
3.2 %
11.4 %
7.1
7.0
Nougat
25
24
10.5 %
20.3 %
6.0 Marshmallow 23 22.7 %
5.1
5.0
Lollipop
22
21
15.4 %
3.8 %
4.4 KitKat 19 8.6 %
4.3
4.2.x
4.1.x
Jelly Bean
18
17
16
0.5 %
1.8 %
1.2 %
4.0.x Ice Cream S. 15 0.3 %
2.3.x Gingerbread 10 0.3 %
Google Play Store – Septembre 2018
Université Constantine 2 12
Architecture d’Android (1/2)
© Dr. Chaouche A.-C.
Université Constantine 2 13
Le noyau Linux Kernel
fournit le pilotes matériels, la gestion de processus,
la mémoire, le réseau et la gestion de l’alimentation
Les bibliothèques
Libc, SQLite, WebKit, OpenGL, …
Le moteur d’exécution Android
offre les bases de la plateforme applicative
utilise la machine virtuelle - Java Dalvik
La plateforme applicative
fournit les classes utiles et des abstractions matérielles
La couche applicative
IHM (interface graphiques) décrites en XML
modèle de données et contrôleurs applicatifs écrits en java
Architecture d’Android (2/2)
© Dr. Chaouche A.-C.
Université Constantine 2 14
La VM 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 (Virtual Machine) 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 processus (lourd)
Les applications sont totalement indépendantes ("sandbox")
Evite un plantage généralisé !
Espaces protégés (mémoire, disque)
Augmenter la sécurité
Machine virtuelle « Dalvik »
© Dr. Chaouche A.-C.
Université Constantine 2 15
Systèmes mobiles
https://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27exploitation_mobile
Version d’Android
https://developer.android.com/about/dashboards/index.html
Android 9 Pie
https://www.android.com/versions/pie-9-0/
Architecture d’Android
http://www.tutorialspoint.com/android/android_architecture.htm
Quelques liens utiles
© Dr. Chaouche A.-C.
Université Constantine 2 16
AYRADE SARL, «Développement mobile : native VS hybrid VS web,» 2017. Lien :
https://www.ayrade.com/developpement-mobile-native-vs-hybrid-vs-web-2/.
Open Handset Alliance, «Membres actuels de l'OHA,» Lien :
http://www.openhandsetalliance.com/oha_members.html
Google Play, « http://play.google.com ».
Android, «Discover Android 9 Pie,» 2018.
tutorialspoint.com, «Android - Architecture,» 2016. Lien :
http://www.tutorialspoint.com/android/android_architecture.htm.
Références
© Dr. Chaouche A.-C.
Université Constantine 2 17
Chapitre 3 : Installation et configuration de Android Studio
Objectifs :
Installer et configurer Android Studio
Se familiariser avec l’IDE Android Studio
Comprendre le cycle de développement d’une application
Créer et exécuter une application Android
Prochain chapitre
© Dr. Chaouche A.-C.

Applications Android - Cours 2 : OS mobiles

  • 1.
    Université Constantine 2 Dr.CHAOUCHE A.-C. Faculté des nouvelles technologies ahmed.chaouche@univ-constantine2.dz – Cours 2 – Chapitre 2 : Programmation mobile sous Android Développement d’applications mobiles 2018/2019. Semestre 1
  • 2.
    Université Constantine 2 Etudiantsconcernés Faculté/Institut Département Niveau Spécialité 2018/2019. Semestre 1 Dr. CHAOUCHE A.-C. Faculté des nouvelles technologies ahmed.chaouche@univ-constantine2.dz Développement d’applications mobiles Licence 3 Technologies de l’information (TI)Nouvelles technologies IFA Licence 3 Science de l’informatique (SCI)Nouvelles technologies IFA – Cours 2 – Chapitre 2 : Programmation mobile sous Android
  • 3.
    Université Constantine 23 Prérequis Systèmes d’exploitations Langage JAVA Objectifs du cours Comparer les applications mobiles et Web Connaitre les systèmes d’exploitation mobiles Comprendre l’architecture du Android OS Résumé © Dr. Chaouche A.-C.
  • 4.
    Université Constantine 24 Développement Mobile : Natif vs. Web © Dr. Chaouche A.-C. Application native Application Web Portabilité Développement spécifique à chaque plateforme Navigateur Web Développement Nécessité du SDK Maîtrise d’un langage Langage Web (HTML, JS, CSS, PHP, …) Mise à jour Re-téléchargement à travers le App Store Fichiers au niveau du serveur Web Disponibilité Online et offline Online (connexion internet nécessaire) Fonctionnalités Toutes les fonctionnalités du mobile (GPS, voix, notifications, capteurs, …) Limitées aux possibilités du navigateur
  • 5.
    Université Constantine 25 OS mobiles © Dr. Chaouche A.-C. Plateforme/OS Langage IDE SDK Symbian OS 9.5 Code natif C++ Java Eclipse Carbide.c++ Java ME BlackBerry 10 (RIM) Java C/C++ Eclipse BlackBerry 10 Native SDK Windows Phone 10 Windows 10 C++ C# VB .Net Visual studio Windows Phone SDK .NET Framework 4.6 SDK iOS 12 Swift objectif-C Xcode IPhone SDK Android 9 Java Kotlin Code natif C++ Android studio Android SDK + JDK
  • 6.
    Université Constantine 26 Part de marché des OS mobiles © Dr. Chaouche A.-C. OS Part de marché Android 73.1 % iOS 20.3 % Windows 0.7 % BlackBerry OS 0.0 % (arrété en 2016) Symbian OS 0.0 % (arrété en 2013) Source GlobalStat – 4ème trimestre 2017
  • 7.
    Université Constantine 27 Startup créée en 2003 et rachetée par Google en 2005 Open Alliance Handset (OHA) en 2007 : Regroupement de + de 50 entreprises : fabricants de matériel, opérateurs mobiles, développeurs d’applications, … Objectif : développer des normes ouvertes pour des applications de téléphonie mobile 1er mobile sous Android, en 2008 : T-Mobile G1 Android OS – OHA © Dr. Chaouche A.-C.
  • 8.
    Université Constantine 28 Matériel supportant Android Tablette et Smartphone Netbook et appareil photo Télévision et Frigo Tableau de bord (auto) Android wear Google glass Android OS – Matériel © Dr. Chaouche A.-C.
  • 9.
    Université Constantine 29 Constructeurs Système linux Projet open source Licence Apache (coût nul) Développeurs Langage Java Kit de développement (SDK) gratuit Android Market Utilisateurs Système fonctionnel, intuitif et évolutif Multi-tâches Android OS – Points forts © Dr. Chaouche A.-C.
  • 10.
    Université Constantine 210 Noms de code : Desserts Version actuelle : 9 (6 aout 2018) Versions d’Android OS © Dr. Chaouche A.-C. Android 9 Pie
  • 11.
    Université Constantine 211 Versions d’Android OS – Distribution © Dr. Chaouche A.-C. Version Nom API Distribution 9.0 Pie 28 0.1 % 8.1 8.0 Oreo 27 26 3.2 % 11.4 % 7.1 7.0 Nougat 25 24 10.5 % 20.3 % 6.0 Marshmallow 23 22.7 % 5.1 5.0 Lollipop 22 21 15.4 % 3.8 % 4.4 KitKat 19 8.6 % 4.3 4.2.x 4.1.x Jelly Bean 18 17 16 0.5 % 1.8 % 1.2 % 4.0.x Ice Cream S. 15 0.3 % 2.3.x Gingerbread 10 0.3 % Google Play Store – Septembre 2018
  • 12.
    Université Constantine 212 Architecture d’Android (1/2) © Dr. Chaouche A.-C.
  • 13.
    Université Constantine 213 Le noyau Linux Kernel fournit le pilotes matériels, la gestion de processus, la mémoire, le réseau et la gestion de l’alimentation Les bibliothèques Libc, SQLite, WebKit, OpenGL, … Le moteur d’exécution Android offre les bases de la plateforme applicative utilise la machine virtuelle - Java Dalvik La plateforme applicative fournit les classes utiles et des abstractions matérielles La couche applicative IHM (interface graphiques) décrites en XML modèle de données et contrôleurs applicatifs écrits en java Architecture d’Android (2/2) © Dr. Chaouche A.-C.
  • 14.
    Université Constantine 214 La VM 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 (Virtual Machine) 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 processus (lourd) Les applications sont totalement indépendantes ("sandbox") Evite un plantage généralisé ! Espaces protégés (mémoire, disque) Augmenter la sécurité Machine virtuelle « Dalvik » © Dr. Chaouche A.-C.
  • 15.
    Université Constantine 215 Systèmes mobiles https://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27exploitation_mobile Version d’Android https://developer.android.com/about/dashboards/index.html Android 9 Pie https://www.android.com/versions/pie-9-0/ Architecture d’Android http://www.tutorialspoint.com/android/android_architecture.htm Quelques liens utiles © Dr. Chaouche A.-C.
  • 16.
    Université Constantine 216 AYRADE SARL, «Développement mobile : native VS hybrid VS web,» 2017. Lien : https://www.ayrade.com/developpement-mobile-native-vs-hybrid-vs-web-2/. Open Handset Alliance, «Membres actuels de l'OHA,» Lien : http://www.openhandsetalliance.com/oha_members.html Google Play, « http://play.google.com ». Android, «Discover Android 9 Pie,» 2018. tutorialspoint.com, «Android - Architecture,» 2016. Lien : http://www.tutorialspoint.com/android/android_architecture.htm. Références © Dr. Chaouche A.-C.
  • 17.
    Université Constantine 217 Chapitre 3 : Installation et configuration de Android Studio Objectifs : Installer et configurer Android Studio Se familiariser avec l’IDE Android Studio Comprendre le cycle de développement d’une application Créer et exécuter une application Android Prochain chapitre © Dr. Chaouche A.-C.