2.1.1 Présentation

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1sur 11

Introduction

Rares sont les systèmes ayant connu une progression telle que celle que connait
actuelle-ment le système Android.
Dans ce chapitre nous allons définir c’est quoi l’informatique mobile, et quelques
notions de base, puis nous allons présenter l’univers Android tout en définissant c’est
quoi le système Android, son architecture et le cycle de vie d’une application
Android.

2.1 L’informatique mobile

2.1.1 Présentation
Difficile, aujourd’hui, de passer à côté de l’explosion de l’internet mobile. En l’espace
de quelques mois, les nouveaux terminaux mobiles que sont les tablettes et les
smartphones ont envahi notre quotidien. Cet afflux technologique change radicalement
notre rapport à l’informatique en affranchissant de l’utilisation d’un micro-ordinateur
classique.

2.1.2 Les terminaux mobiles


Un terminal mobile est un petit appareil informatique ou de communication qu’on peut
transporter avec soi dans ses déplacements et utiliser comme terminal donnant accès sans
fil
à un ou plusieurs réseaux. Parmi les terminaux mobiles, on trouve des assistants
numé-riques personnels (PDA), téléphones intelligents (Smartphone), des tablettes,
etc.

- Les assistants personnels (PDA)

Figure 2.1 – Un assistant personnel


Un assistant personnel est un périphérique portable qui fonctionne comme un
ges-tionnaire d’informations personnelles. Les PDA sont utilisés pour la navigation
sur le Web, les applications bureautique, les vidéos, les photos ou les téléphones
mobiles. Les caractéristiques du modèle PDA varient, mais les fonctionnalités
communes cou-rantes incluent les écrans tactiles, la connectivité Bluetooth et
Wifi, etc. Les PDA contiennent des logiciels pour synchroniser les informations.

- Les smartphones

Figure 2.2 – Les smartphones

Un smartphone (téléphone intelligent) est un téléphone portable doté de


fonctionnali-tés très avancées. Un smartphone typique dispose d’un écran
tactile haute résolution, de la connectivité WIFI, des capacités de navigation
Web et de la capacité d’accepter des applications sophistiquées. La plupart de
ces appareils fonctionnent sur l’un de ces systèmes d’exploitation mobiles
populaire : Android, Symbian, IOS, BlackBerry OS et Windows.

- Les tablettes

Figure 2.3 – Les tablettes

Une tablette PC est un ordinateur portable hybride entre un assistant numérique per-
sonnel (PDA) et un ordinateur portable. Équipé d’une interface à écran tactile,
possède généralement une application logicielle utilisée pour exécuter un clavier
virtuel. Ce-pendant, de nombreuses tablettes PC prennent en charge les claviers
externes. Elles ont des fonctions de navigation Web intégrées, des options de
connectivité multiples, des écrans tactiles capacitifs et multimédia, y compris
un support haut définition (HD).

2.2 Les applications mobiles

2.2.1 Définition
Une application mobile est un type de logiciel ou programme conçu pour
s’exécuter sur un appareil mobile, tel qu’un smartphone ou une tablette. Les
applications mobiles servent souvent à fournir aux utilisateurs des services similaires
à ceux du PC.

2.2.2 Les particularités d’une application mobile


Pour répondre aux besoins et aux attentes du mobinaute, une application doit
être pensée pour la mobilité. Même si le service existe déjà, par exemple en
application web, l’application mobile ne doit pas être présentée comme une
application Desktop (ou être copie). Tout d’abord car la taille du terminal est différent
et aussi car le mobile offre d’autres possibilité que le web. Parmi les particularités
d’une application mobile on trouve la performance et l’environnement.
- La performance
Une application mobile est développée pour atteindre un niveau de qualité, en
termes d’ergonomie mais aussi de performance, inégale par rapport aux
autres moyens d’ac-céder à un servie sur le mobile. Une application mobile
peut être indépendante ou liée à un service web et utiliser ou non le web.
- Environnement ou absence d’internet
Une application mobile n’a donc pas obligatoirement besoin d’internet pour fonction-
ner sur le téléphone. Si l’utilisateur se retrouve dans une zone privée d’internet, alors
il pourra continuer à utiliser son application (même si les informations affichées ne
sont pas les dernières en ligne dans le cas où l’application récupère des
informations).

2.2.3 Domaine des applications mobiles


Le domaine d’utilisation des applications mobiles est très vaste, on peut citer par
exemple la géolocalisation, itinéraire, Payement mobile, traitement du texte, les jeux,
réseaux sociaux et éducation, etc.

2.2.4 Les différents types d’application mobile


Il existe plusieurs types d’applications mobiles qui sont les applications natives,
web et hybrides.
- Les applications natives
Une application native est une application développée spécifiquement pour
une seule plateforme, grâce aux outils conçus pour celle-ci. Elle est
développée avec un langage spécifique à son système d’exploitation et est
distribuée uniquement par l’intermé-diaire de son store (AppStore IOS,
PlayStore pour Android, ...). Pour développer une application pour deux
plateformes différentes, il vaut mieux de développer deux applications
distincts.
- Les applications Web (WebApps)
En opposition à une application native, une WebApps est une application
mobile développée avec les outils de développement web actuel : HTML5,
CSS3 et JavaScript. C’est une application qui une fois développée est
accessible et exécutable sur tous les smartphones via leur navigateur web.
L’avantage de ces applications, c’est le gain de temps et d’argent réalisé
grâce à leur développement unique et leur déploiement multiplateformes.
Dans un cas, vous développez une seul application alors que dans l’autre,
vous développez trois applications (pour Android, IOS et Windows Phone).
- Les applications hybrides
Les applications hybrides sont des applications qui combinent les éléments d’une
We-bApps et les éléments d’une application native. Elles reposent
essentiellement sur la solution Cordova/PhoneGap, cette solution sert de
passerelle entre le langage web et le natif. Cette solution nous permet d’utiliser un
seul et même outil pour le déve-loppement et les langages issus du
développement Web pour tous les mobiles (IOS, Android et Windows Phone).

2.3 Le système d’exploitation Android

2.3.1 Présentation
Android est une plate-forme intégrée pour la première fois dans un smartphone
(téléphone intelligent) sorti en France en mars 2009, Android s’est depuis émancipé
très rapidement pour conquérir de nombreux appareils, mobile ou non, tels que les
netbooks (mini-ordinateurs), les tablettes tactiles et les télévisions connectées, au
point de devenir aujourd’hui l’un des systèmes d’exploitation majeurs dans le monde.

2.3.2 Historique
L’histoire d’Android commence en octobre 2003, lorsqu’Andy Rubin, Rich Miner,
Nick Sears et Chris White créent la société Android à Palto Alto (Californie).
Google a racheté la société en août 2005. Deux ans plus tard, l’Open Handset
Alliance est annoncée et Android devient officiellement open source.
La première version du SDK Android 1.0 sort en 2008 avec le premier téléphone
sous Android (HTC Dream). En avril 2019, la version 1.5 (API 3) d’Android sort. Cette
version baptisée Cupcake (petit gâteau) inaugure les nouveaux noms des versions
d’Android ce qui donnera pour les futures versions comme le montre la figure
dessous.

Nom N version Date Niveau API


1.0 Septembre 2008 1
N/A
1.1 Féverier 2009 2
Cupcake 1.5 Avril 2009 3
Donut 1.6 Septembre 2009 4
Eclair 2.0-2.1 Octobre 2009 5-7
Froyo 2.2-2.2.3 Mai 2010 8
Gingerbread 2.3-2.3.7 Décembre 2010 9-10
Honeycomb[a] 3.0-3.2.6 Féverier 2011 11-13
Ice Cream Sandwich 4.0-4.0.4 Octobre 2011 14-15
Jelly Bean 4.1-4.3.1 Juin 2012 16-18
Kitkat 4.4.x Octobre 2013 19-20
Lollipop 5.0-5.1.1 Octobre 2014 21-22
Marshmallow 6.0-6.0.1 Mai 2015 23
Nougat 7.0-7.1.1 Septembre 2016 24-25
8.0 August 2017-
OREO 8.1 Décembre 2017 26-27
Pie 9.0 August 2018 28
Q 10.0 August 2020 29
Table 2.1 – Historique des versions du système Android

2.3.3 Architecture
Cette figure illustre les différentes couches au niveau du système android.

Figure 2.4 – L’architecture d’un système Android

Comme le montre la figure ci-dessus, Le système d’exploitation Android est basé


sur une architecture à quatre niveaux.
- Linux Kernel
Le système d’exploitation Android s’appuie sur un noyau Linux, régulièrement
mis à jour selon les versions du système : si les premières versions utilisaient
la version 2.6.x du noyau Linux les actuelles dernières versions (Android 5.x)
est basées sur la version 3.4.x de Linux.
Cette première couche prend en charge la gestion des couches basses (gestion des

pro-cessus, de la mémoire, de la couche matérielle) ainsi que les droits utilisateurs.

Au-dessus de noyau se trouve une couche d’espace utilisateur native, constituée par
le binaire init (le premier processus démarré, qui fait tourner tous les autres
processus), plusieurs démon et quelque centaines bibliothèque natives sont utilisées
dans tout le système.

- Les librairies
A ce niveau, figure la couche des bibliothèques principales du système
fournies par des tiers. Celles-ci, de bas niveau, sont écrites en C et/ou C++.
Elles fournissent des services essentiels tels que la bibliothèque d’affichage en
2D (SGL), la bibliothèque d’affichage graphique 3D (OpenGL), la bibliothèque
de base de données (SQLite), la lecture et l’enregistrement audio et vidéo
(Media Framework), un moteur de naviga-tion Web (WebKit) ..
- Android Runtime (Le moteur d’exécution linux)
Au même niveau que cet ensemble de librairies se trouve l’environnement fonctionnel
d’Android basé sur une technologie Java avec une spécificité unique : sa machine
virtuelle optimisée pour les applications mobiles. Cette machine virtuelle, dénommée
Dalvik, est initialisée par chaque application lors de son lancement et ouvre, pour
chacune, une Dalvik spécifique, ce qui rend l’OS complètement multitâche.
Dalvik est fournie avec son kit de développement spécifique ou Application
Program-ming Interface (API) écrit en Java ; les applications Android sont donc
écrites en Java, mais un java spécifique à Android. Le Java Development Kit
(JDK) Android est, en fait, un sous-ensemble du JDK de SUN et intègre une partie
des classes JDK SUN et JDK SWING, plus des classes spécifiques à Android.
- Framework Android
Les fonctionnalités offertes par ces bibliothèques sont ensuite reprises et
utilisées par cette couche sous forme de bibliothèques Java. Celles-ci
fournissent des bibliothèques et composants réutilisables spécifiques à des
domaines particuliers. On y retrouve par exemple les bibliothèques de base de
données, de téléphone, localisation géographique, de communication en
champ proche .
- Les applications
Enfin, une dernière couche parachève cette structure : les applications. Ces
appli-cations peuvent être, bien sûr, les applications tierces téléchargées sur le
magasin d’application officiel, mais également des applications installées par
défaut, telles que l’application d’accueil (aussi appelée Launcher), le
navigateur web, les applications de SMS et téléphonie, etc. Toutes ces
applications sont communément développées en Java.

2.4 Les applications Android

2.4.1 Présentation
Une application Android est une application mobile spécifiquement développée pour
les smartphones et les tablettes utilisant le système Android. Elles sont de nature très
variables tel que les applications jeux, mobile commerce, utilitaire, service d’information .

Sous Android, une application est composée d’une ou plusieurs activités. Une activité est
la base d’un composant pour la création d’interfaces utilisateur. Afin de faciliter la cinéma-
tique de l’application, il est préconisé de n’avoir qu’une interface visuelle par activité.

2.4.2 État d’une activité (application)


Une application Android peut se trouver dans des états différents qui sont : en
cours d’exécution, en pause, stopper et tuer.
- En cours d’exécution : l’activité se trouve au premier plan et reçoit les
interactions utilisateurs. Si l’appareil a besoin de ressources, l’activité se
trouvant en bas de la back stack.
- Pause : l’activité est visible mais l’utilisateur ne peut pas interagir avec
(cachée par une boîte dialogue par exemple). La seule différence avec l’état
précédent est la non-réception des évènements utilisateurs.
- Stopper : l’activité n’est plus visible mais toujours en cours d’exécution.
Toutes les informations relatives à son exécution sont conservées en
mémoire. Quand une activité passe en état stopper, vous devez sauvegarder
les données importantes et arrêter tous les traitements en cours d’exécution.
- Tuer : l’activité est tuée, elle n’est plus en cours d’exécution et disparaît de la
back stack. Toutes les données présentes en cache non sauvegardées sont
perdues.

2.4.3 Cycle de vie d’une activité Android


Par défaut, chaque application Android s’exécute dans un processus séparé.
Android gère les ressources disponibles dans un appareil et peut, si besoin, fermer
des ap-plications pour libérer des ressources (hors application en cours d’exécution).
Le choix de l’application à fermer dépend fortement de l’état du processus dans
lequel elle se trouve. Si Android doit choisir entre deux applications se trouvant dans
le même état, il choisira celle qui se trouve dans cet état depuis plus longtemps.
Le cycle de vie d’une activité est assez complexe et sa compréhension est indispensable
dans le développement Android. Le schéma ci-dessous résume ce cycle de vie.
Lors du lancement d’une activité, la méthode onCreate est appelée. Dans cette
méthode, vous devez initialiser votre vue et lier les données à une liste. Cette
méthode prend en para-mètre un Bundle (pile) contenant l’état précédent de
l’activité.
Cet appel est suivi par la méthode onStart afin de signifier le lancement effectif de
l’appli-cation (elle est maintenant visible). Cette méthode peut aussi être appelée par
la méthode onRestart.
Puis la méthode onResume est appelée afin d’exécuter tous les traitements
nécessaires au fonctionnement de l’activité (thread, processus, traitement), initialiser
des variables et les listeners. Ces traitements devront être arrêtés lors de l’appel à la
méthode onPause et re-lancés si besoin lors d’un futur appel à la méthode
onRésume.
Après ces trois appels, l’activité est utilisable et peut recevoir les interactions utilisateurs.
Si une autre activité passe au premier plan, l’activité en cours d’exécution passera en
pause. Juste avant l’appel à la méthode onPause, la méthode onSaveInstanceState
est appelée afin de vous permettre de sauvegarder les informations importantes portées
par l’activité. Ces informations pourront être appliquées aux futurs lancements de
l’activité lors de l’appel
à la méthode onRestoreInstanceState ou de l’appel à onCreate.
La méthode onPause permet de stopper tous les traitements effectués (traitement
non né-cessaire si l’activité n’est pas visible) par l’activité (traitement, thread,
processus). Si votre activité est de nouveau visible, cela correspondra à un appel à
la méthode onResume. Le passage de l’activité à l’état “stopper” correspond à un
appel à la méthode onStop. Dans cette méthode, il faut arrêter tous les traitements
restants. Une fois stoppée, votre activité peut :
- Soit être relancée : cela s’effectue par un appel à la méthode onRestart suivi
du cycle de vie normal de l’activité.
- Soit être tuée : cela s’effectue par un appel à la méthode onDestroy, dans
laquelle vous devez arrêter tous les traitements restants, fermer toutes les
connexions à la base de données, tous les threads, tous les fichiers ouverts, etc.
Vous pouvez provoquer l’appel à la méthode onDestroy en utilisant la méthode
finish.

Conclusion
Dans ce chapitre nous avons présenté brièvement l’informatique mobile et le monde
An-droid tout en décrivant le système Android, son architecture et l’évolution de ses
versions
à travers le temps depuis son apparition jusqu’à la version actuel. Cela nous a aidés
à bien comprendre le fonctionnement de ce système.
Le chapitre suivant sera consacré à la phase de spécification et analyse des besoins.
Figure 2.5 – Cycle de vie d’une activité Android

Vous aimerez peut-être aussi