Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Présentation d'Android

Par Jérémy SUINI Publié le 12/10/2016 à 11:20:36 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

Introduction

Android est un système d’exploitation (ou OS – Operating System en anglais) open source développé par l’OHA (Open Handset Alliance) sous autorité de Google, et crée au départ pour les téléphones mobiles.

Android est basé sur un kernel Linux et possède une licence Apache License 2.0.

Android n’est pas qu’un système d’exploitation, c’est aussi un framework. Les développeurs ont accès au SDK (Software Development Kit) et à tout le code source de la plateforme. Avec ces outils il est possible de créer des versions personnalisées de l’OS Android et de développer des applications.

Le logo d’Android est un personnage nommé Bugdroid. Ce personnage aurait comme origine un personnage d’un jeu vidéo des années 1990 sur la console Atari : Gauntlet : The Third Encounter.

Historique et origine

Tout commence en Octobre 2003. Andy Rubin, Rich Milner, Nick Sears et Chris White créent une startup nommée Android.

En 2005, Google rachète cette startup et en 2007 le système d’exploitation Android est lancé par l’Open Handset Alliance.

La première version du SDK Android (SDK Android 1.0) sort en 2008 en même temps que le premier téléphone utilisant le système d’exploitation Android : l’HTC Dream.

En 2009, la version bien connue nommée Cupcake sort, c’est la version 1.5 (API 3).

Suite à cette version « Cupcake », les noms des futures versions ont tous des noms du même type :

Donut (Beignet) 1.6 (API 4) : septembre 2009.

Eclair (Éclair) 2.0/2.1 (API 7) : octobre 2009.

Froyo (Yaourt glacé) 2.2.x (API 8) : mai 2010.

Gingerbread (Pain d’épice) 2.3.x (API 10) : décembre 2010.

Honeycomb (Ruche d’abeille) 3.x (API 11 - 12 - 13) : février 2011.

Ice Cream Sandwich (Sandwich à la crème glacée) 4.0.x (API 14 - 15) : octobre 2011. Cette version unifie la version tablette (Honeycomb) et la version smartphone (Gingerbread).

Jelly Bean (Dragibus) 4.1.x jusqu’à 4.3.1 (API 16, 17 et 18) : juin 2012.

KitKat 4.4.x (API 19) : octobre 2013.

Lollipop (Sucette) 5.x (API 21) : octobre 2014. Cette version est la dernière en date et apporte énormément de nouveautés.

Il fut d’abord conçu pour les smartphones et les tablettes tactiles, et s’est répandu ensuite dans les ordinateurs, les télévisions (Android TV), les voitures (Android Auto), et récemment les smartwatch (Android Wear).

L'Open Handset Alliance

L’OHA (Open Handset Alliance) est une alliance ou consortium de 34 entreprises qui ont pour objectif de développer des normes pour les appareils de téléphonie mobile. L’Open Handset Alliance a été créé le 5 novembre 2007 sous l’impulsion de Google.

Ces 34 entreprises peuvent être des opérateurs de téléphonie mobile (China Mobile, Vodafone, Bouygues Telecom ou T-Mobile par exemple), des fabricants de semi-conducteurs (Ericsson, NVIDIA Corporation, Intel, Qualcomm, Texas Instruments par exemple), des fabricants d’appareils et de matériels (Asus, Acer, Alcatel, Sony Mobile, Toshiba, Lenovo, Samsung Electronics par exemple), de logiciels (eBay, Google, Nuance Communications, NMS Communications par exemple) ou encore d’autres fonctions (Teleca, Wind River par exemple)

Environnement de développement

Java

Il y a différents environnements de développement pour le développement Android. Le premier prérequis est l’installation d’un environnement Java, plus particulièrement le JDK (Java Development Kit).

Pour l’installer : http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

Android Studio

Android Studio est l’environnement de développement spécialement utilisé pour Android.

Pour l’installer : https://developer.android.com/sdk/installing/studio.html

SDK Android

Le SDK Android contient tous les outils nécessaires pour créer une application Android. Il est disponible pour Windows, Mac OS et Linux Chaque version du SDK contient :

L’AAPT - Android Asset Packaging Tool : cet outil sert à créer et à analyser des fichiers *.apk (cf. chapitre Principes de programmation - Architecture Android). Ces fichiers contiennent le programme de l’application crée.

L’ADB - Android Debug Bridge : le but de cet outil est d’établir des connexions avec un téléphone Android ou un émulateur en facilitant l’accès à leur shell. Ceci afin de parcourir son contenu ou d’exécuter des commandes. Cet outil sert aussi à transférer une application ou des fichiers sur un téléphone Android ou un émulateur.

Le DDMS - Dalvik Debug Monitor Service (cf. chapitre Débogage et gestion des erreurs - Principes) : cet outil est utilisé pour le débogage de votre application et a plusieurs fonctionnalités :

• Faire des captures d’écrans.

• Voir les threads en cours d’exécution.

• Voir le Logcat.

• Connaître la liste des processus en cours d’exécution sur l’appareil.

• Simuler l’envoi de messages et d’appels.

• Simuler une localisation, etc.

Le SDK contient aussi un système permettant de créer et de gérer les émulateurs ainsi que la documentation pour chaque version d’Android et des exemples pour les différentes API.

Emulateur

L’émulateur est un outil qui permet de simuler l’utilisation d’un téléphone ou d’une tablette qui fonctionne sous Android. Il permet donc de développer et de faire des tests sous Android.

Avec l’émulateur, il est aussi possible de créer une large gamme d’émulateurs pour simuler tous les types de téléphones ainsi que toutes les résolutions et toutes les tailles d’écran.

Architecture Android

L’architecture Android est basée sur le principe de maitriser les ressources et leur consommation. Lors du développement, il faut faire attention à plusieurs choses : création de nouveaux objets, consommation de la batterie, stockage, etc...

Cette architecture est découpée en quatre parties :

La partie Application, qui comme son nom l’indique, regroupe l’ensemble des applications fournies avec l’ensemble le système d’exploitation Android.

La partie Framework Android qui représente un Framework permettant à tous les développeurs de créer des applications, tout cela en accédant à l’ensemble des API (pour un aperçu : https://www.supinfo.com/articles/single/1660-pages-aide-avec-aspnet-web-api) et fonctionnalités disponible sur le périphérique utilisé.

La partie Bibliothèques qui constitue un ensemble de bibliothèques utilisées par le système d’exploitation Android.

La partie Android Runtime qui contient des machines virtuelles, dont la machine virtuelle ART (Nous verrons ce qu’est la machine virtuelle ART bientôt).

Et enfin la partie Linux Kernel, c’est le noyau Linux (de nos jours la version 2.6), qui fournit une interface, gère la mémoire, les ressources et les processus nécessaires au système d’exploitation Android.

ART

ART (Android RunTime) est une nouvelle machine virtuelle sur laquelle s’appuie Android, depuis la version 5.0 Lollipop. Elle est venue remplacer la machine virtuelle précédente du nom de Dalvik, qui est toujours disponible dans les dernières versions du système d’exploitation Android).

ART possède plusieurs nouveautés ou spécificités dont la principale est l’AOT Compilation (Ahead of Time, ce qui veut dire en français compilation anticipée). L’AOT Compilation permet de compiler toutes sortes d’applications lors de l’installation et non pas à l’exécution, comme le faisait la version Dalvik.

Dalvik se base sur la compilation à l’exécution, qu’on appelle Just In Time. Dans les faits, l’application est compilée à chaque exécution. La machine virtuelle ART permet maintenant d’augmenter les performances et l’espace de stockage pour sauvegarder une application (stockage de la version compilée de l’application).

Cette machine virtuelle ART possède plusieurs autres nouveautés telles que l’amélioration du Garbage Collector ou encore l’amélioration du développement et du débogage d’applications (les erreurs de compilation seront par exemple plus détaillées).

NDK

Le NDK, Native Development Kit permet le développement natif sous Android. Ce développement natif se fait en langage C ou en langage C++.

Il existe aussi une « version » Java qui permet d’appeler notre code sous-développement natif depuis une classe, que l’on appelle classe JNI (Java Native Interface).

Le NDK permet d’accéder à plusieurs outils qui permettent de générer du code natif (depuis des fichiers en langage C ou en langage C++), de créer des fichiers apk (Android Package, que nous verrons dans la section suivante) et d’accéder à un ensemble d’exemples, de tutoriels et d’une documentation complète.

APK

L’APK, Android Package, est un code binaire qui représente une application.

Le format apk est utilisé pour installer les applications. Pour créer un Android Package, l’application Android que l’on utilise est compilée et packagée dans un fichier qui contient les certificats, les assets, les ressources, le code de l’application compilée (sous le format .dex) et un fichier manifeste.

Un Android Package est nécessaire pour publier une application sur Google Play.

Google Play est le « market » permettant aux utilisateurs d’accéder et de télécharger toutes les applications fonctionnelles sous le système d’exploitation Android.

Il est possible sur GooglePlay de rechercher, télécharger des applications, mais aussi de noter, commenter et désinstaller ces dernières.

Depuis Android Studio, il est possible de générer un Android Package, avec un outil nommé AAPT (Android Asset Packaging Tool), que nous avons déjà vu dans la sous-partie « SDK Android ».

L’Android Asset Packaging Tool est intégré à l’environnement de développement. Il y a deux types de d’Android Package :

• Les APK dit « signés »

• Les APK dit « non signés », qui peuvent être utilisés pour tester les applications.

Néanmoins on ne peut pas publier un Android Package non signé sur Google Play.

Dans l’autre sens, afin de générer un Android Package signé, nous avons besoin de ce que l’on appelle un keystore, qui contient un ensemble de clés utiles pour « signer » nos applications.

Nous pouvons utiliser un keystore en notre possession ou alors en créer un nouveau.

Afin de créer un nouveau keystore, il faut choisir un emplacement pour stocker ce keystore, et bien sûr avoir un mot de passe pour pouvoir utiliser ce keystore.

Comme énoncé auparavant, un keystore est un ensemble de différentes clés de signature, et chaque clé peut « signer » une application différente. Lors de la signature de notre application, le choix entre l’utilisation d’un keystore existant ou la possibilité de créer un nouveau keystore est disponible.

Personnalisation avec Material Design

Le Material Design est un des nouveautés apparues avec la version 5.0 Lollipop d’Android. Il est devenu le thème par défaut pour le système d’exploitation Android, mais aussi pour tout ce qui a attrait à Google.

Cette nouveauté est dans les faits important pour Google, qui veut créer un template ou plutôt des lignes directrices d’un point de vue design et non technique pour les applications, que ce soit sous un smartphone, une télé, un site web, une tablette, etc…). Google a la volonté d’unifier le design sur toutes les plateformes ou périphériques qui utilisent le système d’exploitation Android.

Le Material Design se base sur la 3D (ce qui veut dire que chaque objet aura trois coordonnées x, y,z , l’axe z représentant l’élévation de l’objet qui combinée avec une ombre donnera de multiples effets possibles).

Le système d’exploitation Android fournit trois thèmes qui sont inspirés par le Material Design :

• Le Dark Material Theme (ou en français thème sombre)

• Le Light Material Theme (ou en français theme clair)

• Le Light Material Theme with dark Action Bar (ou en français thème clair avec une barre d’actions sombre).

Il est possible d’utiliser ces thèmes Material du système d’exploitation Android directement lors de la création de l’application, il suffit d’intégrer dans une balise, la balise application le théme que l’on utilise (android : theme = « @android : style/Theme.Material.Light» par exemple). Les anciennes versions d’Android (avant 5.0 Lollipop) n’ont pas à disposition les différents thèmes Material Design.

Il faut alors importer les thèmes dans un dossier « values ».

Conclusion

Merci à tous d'avoir lu cet article, qui est une présentation du système d'exploitation d'Android. J'espère vous avoir donné envie de vous plonger plus en détails dans ce système d'exploitation très riche.

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels