Le but de ce Tutoriel est de
découvrir la programmation sous Android, sa plate-forme de développement et les
spécificités du développement embarqué sur smartphone,
Tablette, TV.
Les grandes notions abordées
dans ce Tutoriel sont:
- · Présenter le système Android ;
- · Créer les interfaces d'une application ;
- · Naviguer et faire communiquer des applications ;
- · Manipuler des données (préférences, fichiers, ...) ;
- · Manipuler Services, threads et programmation concurrente ;
- · Utiliser les capteurs, le réseau.
Android
Définition :
Android est un système
d’exploitation qui va donner vie aux appareils, il sait parler aux
composants et vous pouvez également directement lui parler via une interface
graphique. Ce “programme” va servir ainsi de liaison, le plus emblématique des
OS reste Microsoft Windows installé sur plus de 90% du parc informatique.
Android est quant à lui dédié aux appareils mobiles, smartphones et tablettes,
mais aussi aux télévisions connectés avec la solution Google TV.
Ces appareils mobiles ont nécessité de développer un OS qui leur est dédié, la
raison est simple : l’expérience utilisateur d’un smartphone ou d’une tablette
nécessite des interactions et un fonctionnement particulier.
Les couches Android :
Les couches Android |
Historique des versions:
Nom
|
Version
|
Date
|
Android
|
1.0
|
09/2008
|
Petit Four
|
1.1
|
02/2009
|
Cupcake
|
1.5
|
04/2009
|
Donut
|
1.6
|
09/2009
|
Gingerbread
|
2.3
|
12/2010
|
Honeycomb
|
3.0
|
02/2011
|
Ice Cream Sandwich
|
4.0.1
|
10/2011
|
Jelly Bean
|
4.1
|
07/2012
|
KitKat
|
4.4
|
10/2013
|
Lollipop
|
5.0
|
10/2014
|
5.0.1
|
12/2014
|
|
5.0.2
|
12/2014
|
|
5.1
|
03/2015
|
|
5.1.1
|
04/2015
|
|
Marshmallow
|
6
|
10/2015
|
6.0.1
|
12/2015
|
|
Nougat
|
7.0
|
|
7.1
|
10/2016
|
SDK Android
L'écosystème
d'Android s'appuie sur deux piliers :
·
Le langage Java
·
Le SDK qui permet d'avoir un environnement de développement
facilitant la tâche du développeur.
Le kit de développement donne accès à des exemples, de la
documentation mais surtout à l'API de programmation du système et à un
émulateur pour tester ses applications.
Le plugin Android Development Tool permet d'intégrer les fonctionnalités du SDK à . Il faut l'installer comme un plugin classique en précisant l'URL du plugin. Ensuite, il faut renseigner l'emplacement du SDK (préalablement téléchargé et décompressé) dans les préférences du plugin ADT.
L'Operating System
Android est en fait un système de la famille des 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 (avant Lollipop)
- Un compilateur de bytecode vers le natif Android Runtime (pour Lollipop)
- Des applications (navigateur, gestion des contacts, application de téléphonie...)
- Des bibliothèques (SSL, SQLite, OpenGL ES, etc.…) • Des API d'accès aux services Google
Anatomie d'un déploiement
Dalvik et ART
[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 ramassés 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.
A partir de Lollipop, Android dispose d'ART qui compile l'application au moment du déploiement (Ahead-of-time compilation).
[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.
A partir de Lollipop, Android dispose d'ART qui compile l'application au moment du déploiement (Ahead-of-time compilation).
comparaison Dalvik et ART |
Composants d’une application Android :
Activités :
Présentation :
Une activité est la composante principale pour une application Android. Elle représente l’implémentation et les interactions de l’interfaces.
Une activité correspond à un écran. Si une application se compose de plusieurs écrans, elle a une activité pour chaque écran. Chaque activité est une classe qui étend la classe de base Activity. Elle dispose d'une interface utilisateur graphique faite de vues (views) et elle répond à des évènements (events)
Une activité correspond à un écran. Si une application se compose de plusieurs écrans, elle a une activité pour chaque écran. Chaque activité est une classe qui étend la classe de base Activity. Elle dispose d'une interface utilisateur graphique faite de vues (views) et elle répond à des évènements (events)
Les objets d’une activité :
- Un fichier XML qui s’appelle layout
- Une classe JAVA.
Cycle de vie d’une activité :
Cycle de vie |
Description du cycle de vie :
Méthode
|
Description
|
onCreate()
|
Cette
méthode est appelée à la création de votre activité (Activity). Elle
sert à initialiser votre activité ainsi que toutes les données nécessaires à
cette dernière.
Quand la
méthode OnCreate est appelée, on lui passe un Bundle en argument.
Ce Bundle contient l’état de sauvegarde enregistré lors de la dernière
exécution de votre activité.
|
onStart()
|
Cette
méthode est pour signifier le début d’exécution de votre activité (début du
passage au premier plan).
Si votre
activité ne peut pas aller en avant plan quel que soit la raison, l’activité
sera transférée à OnStop.
|
onResume()
|
Cette
méthode est appelée après OnStart (au moment où votre application
repasse en foreground). à la fin de l’appel à la méthode onResume votre
application se trouve au premier plan et reçoit les interactions
utilisateurs.
|
onPause()
|
Si une
autre activité passe au premier plan, la méthode onPause est appelée sur
votre activité. Afin que vous sauvegardiez l’état de l’activité et les
différents traitements effectués par l’utilisateur.
A ce stade, votre activité n’a plus accès à l’écran, vous devez arrêter de
faire toute action en rapport avec l’interaction utilisateur (désabonner les
listeners). Vous pouvez par contre continuer à exécuter des algorithmes
nécessaires mais qui ne consomment pas trop de CPU.
|
onStop()
|
Appelée quand votre activité n’est plus du tout visible quel que soit la raison. Dans cette méthode vous devez arrêter tous les traitements et services exécutés par votre application.
|
onDestroy()
|
Appelée quand votre application est totalement fermée (Processus terminé). Toutes les données non sauvegardées sont perdues.
|
Services :
Présentation :
Un service, à la différence d’une activité, ne possède pas de vue mais permet l’exécution d’un algorithme sur un temps indéfini. Il ne s’arrêtera que lorsque la tâche est finie ou que son exécution est arrêtée.
Il peut être lancé à différents moments :
Il peut être lancé à différents moments :
- Au démarrage du téléphone.
- Au moment d’un événement (arrivée d’un appel, SMS, mail, etc…).
- Lancement de votre application.
- Action particulière dans votre application.
Cycle de vie d’un service :
Cycle de vie d’un service |
Boradcast Receiver :
Un Broadcast Receiver comme son nom l’indique permet d’écouter ce qui se passe sur le système ou sur votre application et déclencher une action que vous aurez prédéfinie. C’est souvent par ce mécanisme que les services sont lancés.
Content providers :
Les « content providers » servent à accéder à des données depuis votre application. Vous pouvez accéder :
- Aux contacts stockés dans le téléphone.
- A l’agenda.
- Aux photos.
- Ainsi que d’autres données depuis votre application grâce aux content providers.
Fragments :
Un fragment est un sous-contrôleur d’une activité, contenant une vue ainsi que son propre cycle de vie, capable d’être ajouté/retiré/déplacé d’une activité.
Intents :
Les Intents sont des objets permettant de faire passer des messages contenant de l'information entre composants principaux (Activity, Services,…). La notion d'Intent peut être vue comme une demande de démarrage d'un autre composant, d'une action à effectuer. La raison d'être des Intents provient du modèle de sécurité d'Android.
Arborescence d’une application sous Android Studio:
Arborescence d’une application |
N°
|
Description
|
1
|
Fichier
configuration de l’application au système Android. Ce fichier définit par
exemple (Le nom, l’icône, la version min du SDK, les activités, les services,
etc…)
|
2
|
· java : Ce dossier contient les sources de
votre application (code JAVA) et les packages.
· MainActivity.java : Notre principale
activité.
|
3
|
C’est le dossier
qui contiendra les ressources de votre application (images, vidéos, styles).
|
4
|
Contient vos
images et les styles
|
5
|
Les fichiers
interface graphique de l’application.
|
6
|
Dossier contient
les icônes de l’application
|
7
|
Fichier qui
contient les couleurs
|
8
|
Fichier qui contient
vos déclarations de chaines de caractères.
|
9
|
Représente le
thème par défaut utilisé par votre application.
|
10
|
Scripts gradle
|
0 Commentaires