0% ont trouvé ce document utile (0 vote)
53 vues44 pages

Introduction au développement mobile Android

Le document présente une introduction au développement mobile sous Android, en abordant les systèmes d'exploitation mobiles, les types d'applications (natives, hybrides, multiplateformes et web progressives) et leur architecture. Il souligne l'importance croissante des smartphones et des applications mobiles, ainsi que les contraintes des appareils mobiles. Enfin, il décrit l'architecture Android, qui se compose de plusieurs couches, y compris les API et le runtime Android.
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
53 vues44 pages

Introduction au développement mobile Android

Le document présente une introduction au développement mobile sous Android, en abordant les systèmes d'exploitation mobiles, les types d'applications (natives, hybrides, multiplateformes et web progressives) et leur architecture. Il souligne l'importance croissante des smartphones et des applications mobiles, ainsi que les contraintes des appareils mobiles. Enfin, il décrit l'architecture Android, qui se compose de plusieurs couches, y compris les API et le runtime Android.
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Département GI

Module : UML & développement mobile sous Android


Elément : Développement mobile sous Android

Pr. Dr. Yassine RHAZALI


Diplôme universitaire de technologie
Filière : Génie informatique
Option: Génie Logiciel
Semestre 4
1
1 Introduction à la programmation Mobile
1.1 Présentation des systèmes d’exploitation mobile

Téléphonie mobile : Smartphone

• Un smartphone, ordiphone ou téléphone intelligent, est un téléphone mobile disposant aussi des fonctions d'un assistant numérique
personnel (PDA) ;

• La saisie des données se fait par le biais d'un écran tactile ou d'un clavier ;

• Il fournit des fonctionnalités basiques comme : l'agenda, le calendrier, la navigation sur le web, la consultation de courrier électronique, de
messagerie instantanée, le GPS, etc.

2
1 Introduction à la programmation Mobile
1.1 Présentation des systèmes d’exploitation mobile

Nombre de smartphones vendus aux utilisateurs Top 5 des marques de téléphone les plus vendues en
finaux dans le monde de 2007 à 2021 premier trimestre de 2021

En 2021, les vendeurs de smartphones ont vendu environ 1,43 Presque 350 millions de smartphones ont été vendus en premier
milliard de smartphones dans le monde. trimestre de 2021 dans le monde, selon l’analyste Canalys. Des
ventes en hausse de 27 % par rapport à l’année 2020, marquée
négativement par la Covid-19.

© Statista 2022
3
1 Introduction à la programmation Mobile
1.1 Présentation des systèmes d’exploitation mobile

Nombre de téléchargements d'applications mobiles dans le monde de 2016 à 2021(en milliards)


Le nombre de téléchargements d'applications mobiles dans le monde n'a cessé d'augmenter à partir de 2016, pour dépasser les 200 milliards en
2019. Au cours de la dernière année mesurée, les consommateurs ont téléchargé 230 milliards d'apps mobiles sur leurs appareils connectés, soit
une augmentation de plus de 63 % par rapport aux 140,7 milliards de téléchargements d'apps en 2016.

© Statista 2022
4
1 Introduction à la programmation Mobile
1.1 Présentation des systèmes d’exploitation mobile

Domaines d’utilisations des applications mobiles


• L'importance des applications mobiles dans la vie quotidienne. Education

• L'importance des téléphones mobiles dans notre vie et nos activités


quotidiennes sans fin.
Jeux Banque

Quelques
domaines
d’utilisation
Réseaux
Shopping
sociaux

Communi
Cuisine
cation

5
1 Introduction à la programmation Mobile
1.1 Présentation des systèmes d’exploitation mobile

Logiciel open source

• Un logiciel libre (open source) est un logiciel informatique dont le code source est librement accessible, modifiable et partageable. Le

développement collaboratif et le partage des compétences informatiques sont généralement associés aux communautés de développeurs

Open Source.

• L'une des principales différences, opposant les logiciels libres aux logiciels propriétaires, est que le code source de ces derniers est "fermé". En

effet, l'accès au code source est impossible ou très limité. Cela signifie que les utilisateurs paient une licence juste pour utiliser le logiciel, tel

qu'il est, puisque le code source reste inaccessible.

• Par exemple, comparons deux systèmes d'exploitation professionnels que vous connaissez bien : Microsoft Windows est un logiciel

propriétaire, tandis que RedHat Enterprise Linux est un logiciel libre. Tous deux sont très populaires et largement utilisés dans les entreprises de

nos jours.

6
1 Introduction à la programmation Mobile
1.1 Présentation des systèmes d’exploitation mobile

Système d’exploitation mobile

Un système d'exploitation mobile est un système d'exploitation qui permet d'exécuter d'autres logiciels d'application sur des appareils mobiles. Il
s'agit du même type de logiciel que les célèbres systèmes d'exploitation pour ordinateurs tels que Linux et Windows, mais ils sont désormais plus
légers et plus simples dans une certaine mesure.

• Un système d'exploitation mobile est un système d'exploitation embarqué conçu pour fonctionner sur un appareil mobile. Ce type de système
d'exploitation se concentre entre autres sur la gestion de la connectivité sans fil et celle des différents types d'interface.

• Les systèmes d'exploitation que l'on trouve sur les smartphones comprennent Symbian OS, iPhone OS, BlackBerry de RIM, Windows Mobile,
Palm WebOS, Android et Maemo. Android, WebOS et Maemo sont tous dérivés de Linux. L'iPhone OS est issu de BSD et NeXTSTEP, qui sont liés
à Unix.

Réf : Sghaier- Systèmes d'exploitation pour mobiles


7
1 Introduction à la programmation Mobile
1.1 Présentation des systèmes d’exploitation mobile

Contraintes des systèmes d’exploitation mobiles

Les dispositifs mobiles ont des contraintes et des restrictions sur leur caractéristique physique telles que :

• la taille de l'écran ;

• la mémoire ;

• la puissance de traitement, etc ;

• la faible disponibilité de batterie ;

• la quantité limitée de capacités informatiques et de communication.

Ainsi, ils ont besoin de différents types de systèmes d'exploitation en fonction des capacités qu'ils supportent. Par exemple, un OS PDA est
différent d'un système d'exploitation de Smartphone.

Un système d'exploitation mobile est un logiciel embarqué responsable de la gestion des opérations, du contrôle, de la coordination de
l'utilisation du matériel entre les différents programmes d'application et le partage des ressources d'un dispositif mobile.
8
1 Introduction à la programmation Mobile
1.1 Présentation des systèmes d’exploitation mobile

Plateformes populaires de l'OS mobile


.
• Système d'exploitation Android : Le système d'exploitation Android est le système d'exploitation le plus populaire aujourd'hui. Il s'agit d'un

système d'exploitation mobile basé sur le noyau Linux et les logiciels libres. Le système d'exploitation Android a été développé par Google. Le

premier appareil Android a été lancé en 2008.

• Bada (Samsung Electronics) : Bada est un système d'exploitation mobile de Samsung qui a été lancé en 2010. Le Samsung wave a été le

premier mobile à utiliser le système d'exploitation Bada. Le système d'exploitation Bada offre de nombreuses fonctionnalités mobiles, telles

que les graphiques en 3D, l'installation d'applications et le toucher multipoint.

• Windows Mobile OS : Le système d'exploitation Windows Mobile OS est un système d'exploitation mobile qui a été développé par Microsoft.

Il a été conçu pour les PC de poche et les mobiles intelligents.

• iPhone OS / iOS : L'iOS a été développé par la société Apple pour être utilisé sur ses appareils. Le système d'exploitation iOS parmi les

systèmes d'exploitation les plus populaire aujourd'hui. C'est un système d'exploitation très sûr. Le système d'exploitation iOS n'est pas

disponible pour d'autres mobiles. 9


1 Introduction à la programmation Mobile
1.1 Présentation des systèmes d’exploitation mobile

Présentation d’Android
• Système d'exploitation mobile basé sur le noyau Linux ;

• Il a été développé par l'Open Handset Alliance, qui était dirigée par Google et d'autres entreprises ;

• Le système d'exploitation Android est basé sur Linux et peut être programmé en C/C++, mais la plupart des applications sont développées en

Java (Java accède aux bibliothèques C via JNI, abréviation de Java Native Interface) ;

• Interface utilisateur pour les écrans tactiles ;

• Utilisé sur plus de 80% de tous les smartphones ;

• Dispositifs tels que les montres, les téléviseurs, et les voitures ;

• Plus de 2 millions des applications Android dans Google Play Store ;

• Hautement personnalisable pour les périphériques / par les vendeurs ;

• Open source. 10
1 Introduction à la programmation Mobile
1.1 Présentation des systèmes d’exploitation mobile

Comparaison des principaux systèmes d'exploitation pour les appareils mobiles

11
1 Introduction à la programmation Mobile
1.1 Présentation des systèmes d’exploitation mobile

Dispositifs mobiles

PDA Smartphone Lecteurs multimédias


.

Tablette Consoles de jeu mobile Smartwatch


12
1 Introduction à la programmation Mobile
1.2 Approches de développement mobile

Types des approches de développement mobile


Il existe quatre approches pour le développement des applications mobiles :

Développement d'applications Développement d'applications


natives hybrides

Développement d'applications
Application web progressive
multiplateformes

13
1 Introduction à la programmation Mobile
1.2 Approches de développement mobile

Types des approches de développement mobile

Développement d'applications natives

• Les applications natives sont des applications spécifiquement développées pour un système d'exploitation.

• Les systèmes d'exploitation les plus connus pour le mobile sont iOS et Android.

• Si vous souhaitez développer une application native compatible avec iOS et Android, il faudra développer deux applications complètement
différentes :

• une première pour iOS, en langage Swift ou Objective-C ;

• une seconde pour Android, en langage Kotlin ou Java.

14
1 Introduction à la programmation Mobile
1.2 Approches de développement mobile

Types des approches de développement mobile


Approche native : Avantages et Inconvénients

15
1 Introduction à la programmation Mobile
1.2 Approches de développement mobile

Types des approches de développement mobile


Approche native : Exemple

16
1 Introduction à la programmation Mobile
1.2 Approches de développement mobile

Types des approches de développement mobile

Développement d'applications hybrides

• Une application mobile hybride est une application dont le code source permet de générer deux applications : l’une pour Android et l’autre
pour iOS.

• Elle s’appuie pour cela sur des technologies « Web » telles que le Javascript, HTML ou encore CSS.

• Son contenu s’exécute dans un « conteneur » natif, une webview (c’est-à-dire une page internet), grâce à un Framework (Cordova, Capacitor),
pour pouvoir être utilisée comme une application native.

• Il s’agit donc, comme toute application Web, d’un code « interprété » qui nécessite d’être traduit par la machine à chaque exécution, ce qui
réduit la performance de l’application.

17
1 Introduction à la programmation Mobile
1.2 Approches de développement mobile

Types des approches de développement mobile


Approche hybride : Avantages et Inconvénients

18
1 Introduction à la programmation Mobile
1.2 Approches de développement mobile

Types des approches de développement mobile


Approche hybride : Exemple

19
1 Introduction à la programmation Mobile
1.2 Approches de développement mobile

Types des approches de développement mobile

Développement d'applications multiplateformes

• Les applications multiplateformes (cross-platform) ressemblent beaucoup aux applications hybrides.

• Cependant, contrairement aux applications hybrides dont le code s’exécute dans une « webview » native, les applications cross-platform
produisent un même code source qui, compilé, produit deux applications natives. Cela induit une meilleure performance et une expérience
utilisateur plus proche du natif.

• Les technologies utilisées pour développer une application cross-platform sont Flutter, Appcelerator, Titanium, Xamarin, React Native ou encore
Kotlin multiplateforme.

20
1 Introduction à la programmation Mobile
1.2 Approches de développement mobile

Types des approches de développement mobile


Approche multiplateformes : Avantages et Inconvénients

21
1 Introduction à la programmation Mobile
1.2 Approches de développement mobile

Types des approches de développement mobile

Approche multiplateformes : Exemple

Le code de l'application doit être décomposé en plusieurs


parties :

• Code commun (Sahed Code) - un projet commun qui


contient du code réutilisable pour stocker les données de
la tâche ; expose une classe Modèle et une API pour gérer
l'enregistrement et le chargement des données.

• Code spécifique à la plate-forme (Platform Specific Code)


- projets spécifiques à la plate-forme qui mettent en
œuvre une interface utilisateur native pour chaque
système d'exploitation, en utilisant le code commun
comme "back end". Ref : microsoft - Xamarin
22
1 Introduction à la programmation Mobile
1.2 Approches de développement mobile

Types des approches de développement mobile

Application web progressive

• Avec l'approche de développement web, l’application s'exécute dans le navigateur du terminal mobile et utilise les technologies web standard
telles que HTML5, CSS3 et JavaScript.

• Les applications web mobiles n'ont pas accès aux fonctions de la plateforme car elles reposent uniquement sur le navigateur et sur les normes
web associées.

• Les applications web mobiles ne sont pas distribuées via un magasin d'applications. Elles sont accessibles via un lien sur un site Web ou un
signet dans le navigateur du terminal mobile de l'utilisateur.

23
1 Introduction à la programmation Mobile
1.2 Approches de développement mobile

Types des approches de développement mobile


Approche web progressive : Avantages et Inconvénients

24
1 Introduction à la programmation Mobile
1.2 Approches de développement mobile

Types des approches de développement mobile

Approche web progressive : Exemple

25
1 Introduction à la programmation Mobile
1.2 Approches de développement mobile

Critères pour sélectionner une approche afin de développer une application mobile

* *

** **

Réf : inflexsys
* : Moyennant un effort de développement supplémentaire pour adapter l'application aux standards de navigation spécifiques à chaque OS
** : Moyennant des montées de versions plus fréquentes
26
2 Architecture Android SDK
Présentation de l’architecture Android

L’architecture d'Android est composée de 5 couches :

1. Applications système et utilisateur ;

2. API du système d'exploitation Android dans le


Framework Java ;

3. Exposition des API natives ; exécution des applications ;

4. Exposer les capacités matérielles du dispositif ;

5. Noyau Linux.

Une description de chaque couche sera présentée dans les


diapositives qui suivent.
Réf : Android developer
27
2 Architecture Android SDK

Architecture Android : 1. Applications système et utilisateur


• Les applications système n'ont pas de statut particulier.
• Les applications système fournissent des capacités clés aux développeurs d'applications.


Exemple :

• Votre application peut utiliser une application système pour délivrer un message SMS ou passer un appel téléphonique.

28
2 Architecture Android SDK

Architecture Android : 2. Java API Framework

L'ensemble des fonctionnalités du système d'exploitation Android est mis à votre disposition par le biais d'API écrites en langage Java :

• Hiérarchie des classes de vue pour créer des écrans d'interface utilisateur ;

• Gestionnaire de notifications ;

• Gestionnaire d'activités pour les cycles de vie et la navigation.

Java API Framework

Activity Manager Window Manager Content Provider View System Package Manager

Telephony Manager Location Manager Notification Manager Resource Manager

29
2 Architecture Android SDK ANDROID RTUNTIME
Core Libraries

Android RT Dalvik VM

Architecture Android : 3. Android runtime

Chaque application s'exécute dans son propre processus avec sa propre instance du Runtime Android.

Bien qu'Android soit développé en Java, la couche d'exécution de l'architecture Android est constituée de la machine virtuelle Dalvik (DVM), des

bibliothèques Java de base et, récemment, d'une nouvelle machine virtuelle appelée Android runtime (ART).

La DVM exécute des applications programmées en Java. La DVM ne prétend pas être une machine virtuelle Java (JVM) pour des raisons de

licence, mais elle remplit la même fonction. La raison en est que Dalvik est optimisé pour fonctionner sur des appareils de petite taille avec une

mémoire limitée. Pour des raisons de performances, la DVM n'est démarrée qu'une seule fois. Chaque nouvelle instance de celle-ci est clonée

par un service système appelé Zygote. Le schéma suivant présente la structure du runtime Android :

30
2 Architecture Android SDK

Architecture Android : 3. Bibliothèques C/C++

Les bibliothèques C/C++ de base donnent accès aux principaux composants et services natifs du système Android.

Bibliothèques

SQLite Webkit OpenGL ES Freetype

Surface Manager Media Framework SSL SGL

libc

31
2 Architecture Android SDK

Architecture Android : 4.Couche d'abstraction matérielle (HAL)

Interfaces standard qui exposent les capacités matérielles des dispositifs sous forme de bibliothèques.

Exemples : Caméra, module Bluetooth


Applications

Android Framework

Native Libraires

HAL

Linux Kernel

32
2 Architecture Android SDK

Architecture Android : 5. Noyau Linux

• Threading et gestion de la mémoire de bas niveau ;


• Fonctions de sécurité ;
• Pilotes.

Noyau Linux

Display Driver Camera Driver Audio Driver Bindler (IPC) Driver Flash Memory Driver

Process Management Wifi Driver Bluetooth Driver Memory Mangement Power Management

33
3 Activity
Création d’une Activity

Méta-modèle d’une application Android


• Une application mobile est composée de plusieurs écrans (Screen), chaque écran est composé de plusieurs View.
• Une view peut être un widght ou un Layout.

34
3 Activity
Création d’une Activity

View
Si vous regardez votre appareil mobile, chaque élément de l'interface utilisateur que
vous voyez est une View.

Views

35
3 Activity
Création d’une Activity

View

Les sous-classes View sont des éléments de base de l'interface utilisateur.

• Affichage de texte (classe TextView), édition de texte (classe EditText) ;

• Boutons (classe Button), menus, autres contrôles ;

• Possibilité de défilement (ScrollView, RecyclerView) ;

• Afficher des images (ImageView) ;

• Regroupement de vues (ConstraintLayout et LinearLayout).

36
3 Activity
Création d’une Activity

Exemples de sous-classes de View

Button CheckBox

EditText RadioButton

Slider Switch

37
3 Activity
Création d’une Activity

Attributs de View

• Couleur, dimensions, positionnement ;

• Peut avoir le focus (c'est-à-dire être sélectionné pour recevoir les entrées de l'utilisateur) ;

• Peut être interactif (répondre aux clics de l'utilisateur) ;

• Peut être visible ou non ;

• Relations avec d'autres vues.

38
3 Activity
Création d’une Activity

Créer des vues (Views) et des mises en page (Layouts)

• Éditeur de mise en page d'Android Studio : représentation visuelle du XML ;

• Éditeur XML ;

• Code Java.

39
3 Activity
Création d’une Activity

Éditeur de mise en page d'Android Studio

1. Fichier de mise en page XML ;

2. Onglets Design et Texte ;

3. Volet Palette ;

4. Arbre des composants ;

5. Volets Design et Blueprint ;

6. Onglet Attributs.

40
3 Activity
Création d’une Activity

View définie en XML

Exemple d’un TextView en XML :

<TextView
android:id="@+id/show_count"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/myBackgroundColor"
android:text="@string/count_initial_value"
android:textColor="@color/colorPrimary"
android:textSize="@dimen/count_text_size"
android:textStyle="bold"
/>

41
3 Activity
Création d’une Activity

View définie en XML

android:<property_name>="<property_value>"

Exemple: android:layout_width="match_parent"

android:<property_name>="@<resource_type>/resource_id"

Exemple: android:text="@string/button_label_next"

android:<property_name>="@+id/view_id"

Exemple: android:id="@+id/show_count"

42
3 Activity
Création d’une Activity

View en JAVA

context

Dans l’Activity:

TextView myText = new TextView(this);


myText.setText("Afficher le text!");

Context est une interface permettant d'obtenir des informations globales sur l'environnement d'une application.

Obtenez le Context :
Context context = getApplicationContext() ;
Une activité est son propre contexte : TextView myText = new TextView(this).

43
3 Activity
Création d’une Activity

Etats d’une Activity

Une activité, vis-à-vis du code, est séparée en 2 morceaux: un fichier XML, et un fichier
JAVA.

Le fichier XML :
• Interface graphique de l’activity ;
• Conception de l’IHM : design et ergonomie ;
• Déclaration des éléments graphiques : View, Buttons, Layouts, …etc ;
• Déclaration des identifiants des éléments graphiques.

Le fichier Java
• Le contrôle des éléments déclarés dans le fichier XML ;
• Chaque activity est liée à un seul et unique fichier XML qui définit son interface
graphique.

44

Vous aimerez peut-être aussi