Introduction au Développement
d’Application Android
◦ Comprendre l’architecture du système Android
◦ Comprendre l’organisation d’une application Android
◦ Développer et déployer des applications natives
Android
◦ Connaitre les bonnes pratiques du développement
d’application Android
L’art du développement
Android par Mark L. Murphy
Professional NFC
application development for
android by Vedat Coskun
Android developer :
[Link]
[Link]
Contraintes Mobiles
Tenir compte du matériel :
Une puissance processeur faible;
Une RAM limitée;
Plusieurs type de résolutions de l’écran;
Des coûts élevés de transferts de données;
Des connexions réseau moins stables;
Efficacité : optimiser votre code afin
qu’il soit rapide et réactif.
4
Contraintes mobiles
La
performance;
La réactivité;
La sécurité;
La
transparence;
5
5
Plusieurs langages :
Multi OS
Plusieurs outils :
Déploiement facile (multi plateforme)
Android est un système
d’exploitation OPEN SOURCE pour
terminaux mobiles (smartphones, PDA, tablet,
…)
Conçu à la base par une
startup (Android) rachetée par Google en
2005
Pour la promotion de ce système
Google a fédéré autour de lui une trentaine de
partenaires réunis au sein de l’Open Handset
Alliance (OHA)
C’est aujourd’hui le système
d’exploitation mobile le plus utilisé à travers le
monde 8
Introduction à Android
Le système d’exploitation Android est basé
sur Linux. Au plus bas niveau de ce système
se trouve un noyau Linux destiné à la
gestion du matériel comme :
Drivers de ces terminaux,
La gestion de la mémoire,
La gestion des processus
L’accès au réseau
…
10
11
Développeurs
◦ Pas besoin de licence
◦ Simple et intuitifs
◦ Modulables
Constructeurs
◦ Tous les constructeurs peuvent utiliser Android
◦ Un ensemble de services sont déjà disponibles
dans le core
◦ API disponible pour les accès de bas niveau
Introduction à Android 12
Android n’est pas un
langage de programmation
Pour développer sous Android, il
existe deux possibilités :
◦ Développement native (Java ou C)
◦ Développement hybride
Introduction à Android 13
Le SDK Android est développé en
Java Permet de développer des applications
avec un haut niveau d’abstraction
Android a sa propre machine virtuelle
(DVM)
Ne supporte pas toutes les
fonctionnalités de la JRE
Une application Android ne peut
pas s’exécuter sur une machine virtuelle Java
Une application Java (native)
ne peut pas s’exécuter sous Android
Android dispose de sa propre
machine virtuelle
14
Introduction à Android
Il est possible d’écrire des
applications Android en utilisant le langage
C/C++ qui seront exécutées directement
par le système d’exploitation Linux
embarqué
Android fournit le kit de développement
NDK pour les développements d’application
en C/ C++
Utilisé dans le développement de
jeux 2D/3D se basant fortement sur la
librairie OpenGL Introduction à Android
15
Android supporte le développement
◦ Titanium
hybride
◦ Phonegap
◦ Neomad
Introduction à Android 16
Framework et
◦ Android SDK
langage
◦ Java
◦ XML
Outils
◦ Eclipse (Intellij ou Netbeans)
◦ Le plugin ADT
Introduction à Android 17
Outil de développement d’application
Android
Fournit un environnement unifié
permettant de développer « facilement » des
applications Android
Mise à jour automatique via le
SDKManager
Prise en charge de toutes les versions
d’Android
Plusieurs Outils et API
◦ Android xx
◦ Google API xx
◦ Outils d’administration, de débogage …
18
ADB : Outil en ligne de
commande permettant d’administrer un
terminal (virtuel,
◦ Transférer réel) (push / :pull)
des fichiers
◦ Installer une application (install)
◦ Connexion par sockets (forward)
dx : Compilateur Android
qui transforme le bytecode java en code
Dalvik
apkbuilder : Compiler les sources
d’une application Android pour constituer une
archieve (.apk) directement installable sous un
terminal Android
DDMS / Monitor : Monitoring sur
les activités du terminale
19
Compilation
La compilation sous Android avec le plugin
ADT est automatisée.
Android SDK utilise aussi ANT pour automatiser
la compilation.
Android 2.2 Froyo intégre compilateur JIT(Just
le in Time compiler) stable.
20
[Link] 21
Contraintes Mobiles
Les contraintes de test;
Le faible nombre d’API disponibles;
Les limitations matériel (mémoire, espace disque,
…);
Migration;
Performances;
Langage propriétaires
22
Les applications Android sont constitués de
composants à couplage
Les composantes sont liées par un Manifest qui décrit
chacun d’eux ainsi que les interactions entre elles.
23
[Link] : Couche de présentation de l’application;
[Link] : les composants qui tournent en arrière plan;
[Link] providers : Partage de contenus entre
applications;
[Link] : Framework de communication interapplications.
[Link] receivers : Consommateurs des messages
diffusés par les intents.
[Link] : Composant d’application visuels;
[Link] :Framework de notifications aux utilisateurs;
24
Il existe trois catégories de projets sous Android:
Application Android : Type primaire des
applications Android destiné à être executé
directement sur un terminal
Test Projects : Projet de test d’une application
Android
brary
Li project : Projet de types librairies, equivalents à
une API exposant certaines fonctionnalités pouvant
être réutilisé par d’autres applications.
25
[Link] de premier plan: c’est une application
qui est utilisable uniquement lorsqu’elle est visible
et mise en suspens lorqu’elle ne l’est pas;
[Link] d’arrière plan (Services): N’interagit
pas avec l’utilsateur, elle s’exécute en tâche de
fond.
[Link]: c’est une application qui présente
une certaine interactivité mais effectue l’essentiel
de sa tâche en arrière plan. Ces applications
notifient l’utilisateur lorsque cela est nécessaire;
[Link]: ces applications représentées sous forme
d’un widget de l’écran d’accueil;
26
Nom de l’application
Code Source de l’application
Dossier Android, On ne les
touche pas!
Contient les fichiers
compilés
Librairies de références Fichiers de ressources, images,
interfaces, textes, styles ,….
Fichier de configuration de
l’application
Référence : [Link]
27
Chaque projet Android contient un
fichier aux format XML nommé manifeste
([Link]).
Le manifeste permet de définir la
structure et les métadonnées d’une
application, ses composants et ses
prérequis.
Il
contient des balises pour chacun des
composants qui constituent l’application
(Activities, Services, Content Providers et
Broadcast Receivers)
28
Lemanifeste fournit aussi des attributs
permettant de spécifier les métadonnées
d’une application (Exemple son icône, son
thème).
Il
contient également les paramètres de
sécurité, les tests unitaires et la définition
des prérequis matériels et de plateforme.
Le fichier manifeste
([Link]) se trouve à la
racine du projet.
29
Android Manifest
Strucutre du manifeste:
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<uses-permission />
<permission />
<permission-tree />
<permission-group />
<instrumentation />
<uses-sdk />
<uses-configuration />
<uses-feature />
<supports-screens />
<application>
<activity>
<intent-filter>
<action />
<category />
<data />
</intent-filter>
<meta-data />
</activity>
30
30
Android Manifest
Strucutre du fichier manifeste (suite):
<activity-alias>
<intent-filter> . . . </intent-filter>
<meta-data />
</activity-alias>
<service>
<intent-filter> . . . </intent-filter>
<meta-data/>
</service>
<receiver>
<intent-filter> . . . </intent-filter>
<meta-data />
</receiver>
<provider>
<grant-uri-permission />
<meta-data />
</provider>
<uses-library />
</application>
</manifest>
31
31
Android Manifest
Le plugin ADT eclipse fournit un éditeur visuel permettant
de manipuler le Manifest.
Visualisation graphique
Paramètres de l’application Gestion des permissions Visualisation en text xml
32
32
Une activité décrit les actions
que peuvent effectuer un utilisateur.
Elles sont destinées à interagir avec
l’utilisateur
Classe héritant de la classe Activity
d’Android
Doit être déclarée dans le
Manifest pour être visible par le système
Ne peut être instanciée
directement, cette
Activitytache
a = newse fait par le système
Activity();
L’instanciation d’une activité
se fait par les intentions
33
Activity : le cycle de vie
Une bonne compréhension du cycle de vie de
l’Activity permet de garantir que votre application
satisfait respecte les bonnes pratiques de
développement Android.
L’état de chaque Activity est déterminé par sa
position dans la pile des Activities:
1. Active : Quand l’Activity est au sommet de la
pile;
2. En pause : Si l’Activity est visible sans avoir le
focus;
3. Arrêtée: Lorsque l’Activity n’est plus visible;
4. Inactive : Quand elle est tuée ou qu’elle n’est pas
démarrée;
34