Chapitre 1 - 2023
Chapitre 1 - 2023
Chapitre 1 - 2023
native
Chapitre1:
Introduction à l’Android
2
Application native,
hybride, cross-
platform ou web,
comment faire son
choix ?
Référence: https://www.inflexsys.com/application-native-ou-
hybride/
Tour d’horizon
• Septembre 2008 : 1ère version finale avec le
téléphone HTC Dream.
Sélectionner la
version d’Android
qui va être installée
sur le device et
cliquer sur Next.
Emulateur Android
18
Nom du device
Change son
type et sa
version
Android
Échelle de
conversion
dpi/pixel
Emulation de la
carte graphique
Taille du RAM
du device
Taille à partir
de laquelle
Android
démarre
Garbeg
Collector
Taille de DD et
de la mémoire
externe du
device
Emulation de la
connexion réseau
21/56
Assistant de création d’application
22
Android Studio contient un assistant de creation d’applications :
on choisit le type de projet. Pour un premier essai, on se limite au
plus simple, Blank Activity :
Choix de la Version
Chaque version d’Android, dénotée par son API level, ex: 25,
apporte des améliorations et supprime des dispositifs obsolètes.
Toute application exige un certain niveau d’API :
• minSdkVersion doit être inférieur pour cibler la couverture
maximale des appareils Android sur lesquels l'application
sera installée
• targetSkdVersion: est la dernière version du système
d'exploitation Android sur laquelle vous souhaitez exécuter
votre application pour obtenir une optimisation complète
des ressources Android. l’application sera testée etmarchera
correctement jusqu’à ce niveau d’API,
• compileSdkVersion : c’est le niveau maximal de fonctionnalités
API qu’on se limite à employer. Si on fait appel à quelque chose de
plus récent que ce niveau, le logiciel ne se compilera pas.
Choix de Configuration
Voici comment choisir le Minimum SDK, nom application,….
24/56
Fenêtre du projet
Editor Window
Tool
Window
Bar
Navigation Bar
Tool Windows Status Bar
project management, search, version 25/56
control…
Structure d’un projet Android
• AndroidManifest.xml : Le fichier qui décrit l’application
• java/ : Répertoire qui contient code source Java de
l’application
• res/ : Répertoire qui contient les ressources (icônes,
layouts...)
• res/drawable/ : Répertoire qui contient les images (JPG, PNG...)
• res/layout/ : Répertoire qui contient les descriptions XML de la
composition de l’IHM (les layouts)
• res/menu/ : Répertoire qui contient les descriptions XML des
menus
• res/mipmap/ : dossier est réservé spécifiquement aux différentes
icônes utilisées dans l’application (mipmap-hdpi, mipmap-mdpi, etc..)
• res/values/ : Répertoire qui contient les messages, les dimensions,
chaines de caractères…(internationalisation)
26/56
• Gradle Scripts
27/56
• build.gradle : Le script Gradle qui permet de compiler l’application et de
l’installer sur le terminal
• gradle.properties et local.properties : Deux fichiers de propriétés utilisés
par le script Gradle
STRUCTURE D’UN PROJET ANDROID :
LE MANIFEST
28/56
Fichier XML
Précise l’architecture de l’application
Chaque application doit en avoir un
AndroidManifest.xml est dans la racine du projet
La classe R s’agit d’une classe statique régénérée à chaque fois que des ressources
sont ajoutées au projet.
Les ressources sont utilisées de la manière suivante:
android.R.type_ressource.nom_ressource
Cette méthode permet de retourner l’identifiant de la ressource
Par exemple,pour récupérer une ressource de type String d’identifiant « hello »
MyProject/
res/
values/
strings.xml
values-en/
strings.xml
values-fr/
strings.xml
Editeur spécifique
EDITOR DESIGN
34/56
Reconstruction du Projet
Chaque modification d’un source ou d’une ressource fait
reconstruire le projet. C’est automatique.
Dans certains cas (travail avec un gestionnaire de sources comme
Subversion ou Git), il peut être nécessaire de reconstruire
manuellement. Il suffit de sélectionner le menu Build/Rebuild
Project.
En cas de confusion d’Android Studio (compilation directe en ligne
de commande), ou de mauvaise mise à jour des sources (partages
réseau), il faut parfois nettoyer le projet. Sélectionner le menu
Build/Clean Project.
Ces actions lancent l’exécution de Gradle.
Gradle
Gradle est un outil de construction de projets comme
Make(projets C++ sur Unix),Ant(projets Java dans Eclipse) et
Maven.
De même que make se sert d’un fichier Makefile, Gradle se sert
d’un fichier nommé build.gradle pour construire le projet.
C’est assez compliqué car AndroidStudio fait une distinction entre le
projet global et l’application. Donc il y a deux build.gradle :
•un script build.gradle dans le dossier racine du projet. Il
indique quelles sont les dépendances générales (noms des
dépôts Maven contenant les librairies utilisées).
•un dossier app contenant l’application duprojet.
•un script build.gradle dans le dossier app pour compiler
l’application.
Mise A jour
Le SDK ainsi que Gradle sont régulièrement mis à jour,
automatiquement avec AndroidStudio. Cependant, vous devrez
parfois éditer les build.gradle à la main pour en tenircompte.
Par exemple, ce build.gradle de projet fait appel à Gradle3.0.1 et
Realm 4.3.2.
buildscript {
repositories { ... }
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'io.realm:realm-gradle-plugin:4.3.2'
}
}
Ils sont émis par les applications : debug, infos, erreurs. . . comme
syslog sur Unix : date, heure, gravité, source (code de l’émetteur) et
message.
Filtrage des messages
Il est commode de définir des filtres pour ne pas voir la totalité des
messages de toutes les applications de la tablette :
• sur le niveau de gravité : verbose, debug, info, warn,error
et assert,
• sur l’étiquette TAG associée à chaque message,
• sur le package de l’application qui émet le message.
Emission d’un message vers LogCat
Une application émet un message par ces instructions :
Import android.util.Log;
void maMethode() {
Log.i(TAG,"appel de maMethode()");
}
Fonctions Log.*:
Log.i(String tag, String message) affiche une info,
Log.w(String tag, String message)affiche une alerte,
Log.e(String tag, String message)affiche une erreur.
Log.d(String tag, String message)affiche debug.
Création d’un paquet installable
46/56
47/56
Paquet
Un paquet Android est un fichier .apk.
C’est une archive signée (authentifiée) contenant les binaires,
ressources compressées et autres fichiers de données.
La création est relativement simple avec Studio :
1. Menu contextuel du projet Build..., choisir Generate
Signed APK,
2. Signer le paquet à l’aide d’une clé privée,
3. Définir l’emplacement du fichier .apk.
Le résultat est un fichier .apk dans le dossierspécifié.
48/56
Signature d’une Application
Lors de la mise au point, Studio génère une clé qui ne permet pas
d’installer l’application ailleurs. Pour distribuer une application, il
faut une clé privée.
Les clés sont stockées dans un keystore = trousseau de clés. Il faut le
créer la première fois. C’est un fichier crypté, protégé par un mot de
passe, à ranger soigneusement.
Ensuite créer une clé privée :
alias = nom de la clé, mot de passe de la clé
informations personnelles complètes : prénom, nom,
organisation, adresse, etc.
Les mots de passe du trousseau et de la clé seront demandés à
chaque création d’un .apk. Ne les perdez pas.
49/56
Création du keystore
50/56
Création d’une clé
51/56
Création du paquet
52/56