Ces travaux pratiques se base sur le cours de base pour les développeurs Android fourni par Google afin de les préparer pour le test de certification Associate Android Developer. Vous obtiendrez le plus de valeur de ce TP si vous travaillez successivement dans les codelabs.
Dans cette pratique, vous apprendrez comment installer Android Studio, l'environnement de développement Android. Vous créez également et lancez votre première application Android, Hello World, sur un émulateur et sur un périphérique physique.
Vous devriez pouvoir:
AndroidManifest.xml
.Une fois Android Studio installé avec succès, vous créerez, à partir d'un modèle, un nouveau projet pour l'application Hello World. Cette application simple affiche une fenêtre (Activity) vide sur l'écran du périphérique virtuel ou physique Android.
Voici à quoi ressemblera l'application finie:
Android Studio fournit un environnement de développement intégré complet comprenant un éditeur de code avancé et un ensemble de modèles d'application. En outre, il contient des outils de développement, de débogage, de test et de performance qui facilitent le développement d'applications. Vous pouvez tester vos applications avec une large gamme d'émulateurs préconfigurés ou sur votre propre appareil mobile, créer des applications de production et les publier sur le magasin Google Play.
Android Studio est disponible pour les ordinateurs fonctionnant sous Windows ou Linux et pour les Mac exécutant macOS. Le plus récent OpenJDK (Java Development Kit) est livré avec Android Studio.
Pour être opérationnel avec Android Studio, commencez par vérifier la configuration système requise pour vous assurer que votre système les respecte. L'installation est similaire pour toutes les plateformes. Toutes les différences sont notées ci-dessous.
Dans cette tâche, vous allez créer une application simple qui affiche le message "Hello World". Cette application vous permettra de vérifier que le studio Android est correctement installé et de vous familiariser avec les bases du développement avec Android Studio.
Si vous ne prévoyez pas de publier votre application, vous pouvez accepter la valeur par défaut. Sachez que la modification ultérieure du nom du package de votre application représente un travail supplémentaire.
Au moment d'écrire ces lignes, ces paramètres rendent votre application Hello World compatible avec 97.4% des appareils Android actifs sur le Google Play Store.
Android Studio crée un dossier pour votre projet et le construit avec Gradle (cela peut prendre quelques instants).
Activity
). Une Activity
est une tâche unique et ciblée que l'utilisateur peut faire. C'est un élément crucial de toute application Android. Une Activity est généralement associée à une présentation qui définit la manière dont les éléments de l'interface utilisateur apparaissent sur un écran. Android Studio fournit des modèles d'Activity
pour vous aider à démarrer. Pour le projet Hello World, choisis le modèle Empty Activity comme indiqué ci-dessous: sélectionner le module app par le clique droit du souris puis New > Activity > Empty Views Activity.MainActivity
. Vous pouvez changer cela si vous voulez, mais cette leçon utilise MainActivity
.activity_main
. Vous pouvez changer cela si vous voulez, mais cette leçon utilise activity_main
.Vous pouvez également voir un message "Tip of the day" avec des raccourcis clavier et d'autres astuces utiles. Cliquez sur Close pour fermer le message.
L'éditeur Android Studio apparaît. Suivez ces étapes:
Dans cette pratique, vous explorerez comment le projet est organisé dans Android Studio.
Le système de génération Gradle dans Android Studio facilite l'inclusion de binaires externes ou d'autres modules de bibliothèque dans votre génération en tant que dépendances.
Lorsque vous créez un projet pour la première fois, le volet Projet> Android apparaît avec le dossier Gradle Scripts développé comme indiqué ci-dessous.
Suivez ces étapes pour explorer le système Gradle:
Ce dossier contient tous les fichiers nécessaires au système de construction.
Vous y trouverez les options de configuration communes à tous les modules composant votre projet. Chaque projet Android Studio contient un seul fichier de construction Gradle de niveau supérieur. La plupart du temps, vous n'avez pas besoin de modifier ce fichier, mais il est toujours utile de comprendre son contenu.
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
alias(libs.plugins.android.application) apply false
}
En plus du fichier build.gradle
au niveau du projet, chaque module possède son propre fichier build.gradle
, qui vous permet de configurer les paramètres de construction de chaque module spécifique (l'application HelloWorld ne comporte qu'un seul module). La configuration de ces paramètres de génération vous permet de fournir des options de packaging personnalisées, telles que des types de construction et des variantes de produit supplémentaires. Vous pouvez également remplacer les paramètres du fichier AndroidManifest.xml
ou du fichier build.gradle
de niveau supérieur.
Ce fichier est le plus souvent le fichier à modifier lors de la modification de configurations au niveau de l'application, telles que la déclaration de dépendances dans la section dependencies
. Vous pouvez déclarer une dépendance de bibliothèque à l'aide de l'une des différentes configurations de dépendance. Chaque configuration de dépendance fournit à Gradle différentes instructions sur l'utilisation de la bibliothèque.
Voici le fichier build.gradle (Module: app) de l'application HelloWorld:
plugins {
alias(libs.plugins.android.application)
}
android {
namespace 'com.example.helloworld'
compileSdk 34
defaultConfig {
applicationId "com.example.helloworld"
minSdk 24
targetSdk 34
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation libs.appcompat
implementation libs.material
implementation libs.activity
implementation libs.constraintlayout
testImplementation libs.junit
androidTestImplementation libs.ext.junit
androidTestImplementation libs.espresso.core
}
libs.versions.toml
sous forme d'alias. Ces alias pourront ensuite être appelés dans la section dependencies du script Gradle du module app, simplifiant ainsi la configuration du projet.[versions]
agp = "8.6.1"
junit = "4.13.2"
junitVersion = "1.2.1"
espressoCore = "3.6.1"
appcompat = "1.7.0"
material = "1.12.0"
activity = "1.9.2"
constraintlayout = "2.1.4"
[libraries]
junit = { group = "junit", name = "junit", version.ref = "junit" }
ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
material = { group = "com.google.android.material", name = "material", version.ref = "material" }
activity = { group = "androidx.activity", name = "activity", version.ref = "activity" }
constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" }
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
Tout le code et toutes les ressources de l'application se trouvent dans les dossiers app
et res
.
Le dossier java comprend des fichiers de classe Java dans trois sous-dossiers, comme indiqué dans la figure ci-dessus. Le dossier com.example.android.helloworld (ou le nom de domaine que vous avez spécifié) contient tous les fichiers d'un package d'application. Les deux autres dossiers sont utilisés pour les tests et décrits dans un autre codelab. Pour l'application Hello World, il n'y a qu'un seul package et il contient MainActivity.java
. Le nom de la première Activity
(écran) visible par l'utilisateur, qui initialise également les ressources de l'application, est généralement appelé MainActivity (l'extension de fichier est omise dans le volet Project > Android).
Le dossier "res" contient des ressources, telles que des dispositions, des chaînes et des images. Une activité est généralement associée à une disposition de vues d'interface utilisateur définies sous la forme d'un fichier XML. Ce fichier porte généralement le nom de son activité.
Le dossier manifests
contient des fichiers qui fournissent des informations essentielles sur votre application au système Android, que le système doit posséder avant de pouvoir exécuter le code de l'application.
Le fichier AndroidManifest.xml
décrit tous les composants de votre application Android. Tous les composants d'une application, tels que chaque activité, doivent être déclarés dans ce fichier XML. Dans d'autres codelabs, vous modifierez ce fichier pour ajouter des fonctionnalités et des autorisations de fonctionnalités. Pour une introduction, voir App Manifest Overview.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.HelloWorld"
tools:targetApi="31">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Dans cette tâche, vous utiliserez le Android Virtual Device (AVD) manager pour créer un périphérique virtuel (également appelé émulateur) simulant la configuration d'un type particulier de périphérique Android, puis utiliser ce périphérique virtuel pour exécuter l'application. Notez que Android Emulator a des exigences supplémentaires allant au-delà des exigences système de base pour Android Studio.
À l'aide du AVD Manager, vous définissez les caractéristiques matérielles d'un périphérique, son niveau d'API, son stockage, son apparence et d'autres propriétés, puis enregistrez-le en tant que périphérique virtuel. Avec les périphériques virtuels, vous pouvez tester des applications sur différentes configurations de périphériques (telles que des tablettes et des téléphones) avec différents niveaux d'API, sans avoir à utiliser de périphériques physiques.
Pour exécuter un émulateur sur votre ordinateur, vous devez créer une configuration décrivant le périphérique virtuel.
Il existe beaucoup plus de versions disponibles que celles indiquées dans l'onglet Recommended. Regardez les onglets x86 images et Other Images pour les voir.
Si un lien Download est visible à côté de l'image système que vous souhaitez utiliser, celle-ci n'est pas encore installée. Cliquez sur le lien pour lancer le téléchargement, puis cliquez sur Finish lorsque vous avez terminé.
Dans cette tâche, vous allez enfin lancer votre application Hello World.
L'émulateur démarre et démarre comme un périphérique physique. Selon la vitesse de votre ordinateur, cela peut prendre un certain temps. Votre application est créée et une fois que l'émulateur est prêt, Android Studio la télécharge sur l'émulateur et l'exécute.
Vous devriez voir l'application Hello World comme indiqué dans la figure suivante.
Conseil: lors des tests sur un périphérique virtuel, il est recommandé de le démarrer une fois, au tout début de votre session. Vous ne devez pas la fermer avant d'avoir terminé de tester votre application, afin que celle-ci ne subisse plus le processus de démarrage de l'appareil. Pour fermer le périphérique virtuel, cliquez sur le bouton X en haut de l'émulateur, choisissez Quit dans le menu ou appuyez sur Control-Q sous Windows ou Command-Q sous macOS.
Dans cette dernière tâche, vous exécuterez votre application sur un périphérique mobile physique tel qu'un téléphone ou une tablette. Vous devez toujours tester vos applications sur des périphériques virtuels et physiques.
Qu'est-ce que vous avez besoin:
Pour permettre à Android Studio de communiquer avec votre appareil, vous devez activer le débogage USB sur votre appareil Android. Ceci est activé dans les paramètres Developer options de votre appareil.
Sur Android 4.2 et supérieur, l'écran Developer options est masqué par défaut. Pour afficher les options du développeur et activer le USB Debugging:
Vous pouvez maintenant connecter votre appareil et exécuter l'application à partir d'Android Studio.
Android Studio installe et exécute l'application sur votre appareil.
Si votre Android Studio ne reconnaît pas votre appareil, essayez les solutions suivantes:
Si votre ordinateur ne trouve toujours pas le périphérique ou le déclare "unauthorized", procédez comme suit:
Vous devrez peut-être installer le pilote USB approprié pour votre périphérique. Consultez la documentation Utilisation de périphériques matériels.
Dans cette tâche, vous allez modifier quelque chose à propos de la configuration de l'application dans le fichier build.gradle(Module:app)
afin d'apprendre à modifier et à les synchroniser avec votre projet Android Studio.
Suivez ces étapes:
Le contenu du fichier apparaît dans l'éditeur de code.
DefaultConfig
, modifiez la valeur de minSdkVersion
à 26
comme indiqué ci-dessous (il a été initialement fixé à 24
).L'éditeur de code affiche une barre de notification en haut avec le lien Sync Now.
Lorsque vous apportez des modifications aux fichiers de configuration de la construction dans un projet, Android Studio exige que vous synchronisez les fichiers du projet afin qu'il puisse importer les modifications et effectuer des vérifications pour vous assurer que la configuration ne créera pas d'erreurs de construction.
Pour synchroniser les fichiers du projet, cliquez sur Sync Now dans la barre de notification qui apparaît lorsque vous effectuez une modification (comme illustré dans la figure précédente) ou cliquez sur l'icône Sync Project with Gradle Files dans la barre d'outils ou sous le menu File.
Lorsque la synchronisation de Gradle est terminée, le message Gradle build finished
apparaît dans le coin inférieur gauche de la fenêtre d'Android Studio.
Pour en savoir plus sur Gradle, consultez la documentation sur Build System Overview et Configuring Gradle Builds.
Dans cette tâche, vous allez ajouter des instructions de journal (Log
) à votre application, qui affichent des messages dans le volet Logcat. Les messages du journal (Log
)sont un puissant outil de débogage que vous pouvez utiliser pour vérifier les valeurs, les chemins d'exécution et signaler les exceptions.
Pour afficher le volet Logcat, cliquez sur l'onglet Logcat au bas de la fenêtre d'Android Studio, comme indiqué dans la figure ci-dessous ou bien sélectionnez View > Tool Windows > Logcat.
Dans la figure ci-dessus:
Log
) à votre application, les messages de journal (Log
) apparaissent ici.tag
, package
, process
, message, level
, age
...package:mine
: La clé du package accepte une valeur spéciale mine
. Cette valeur spéciale établit une La requête level établit une correspondance avec le niveau de journalisation du message Logcat, où le niveau d'entrée de journal est supérieur ou égal au niveau de requête.level:INFO
établit une correspondance avec toute entrée de journal dont le niveau de journalisation est INFO, WARN, ERROR ou ASSERT. Le niveau n'est pas sensible à la casse. Les niveaux validés sont les suivants : VERBOSE, DEBUG, INFO, WARN, ERROR et ASSERT.Les instructions de journal (Log
) dans votre code d'application affichent des messages dans le volet Logcat. Par exemple:
Log.d("MainActivity", "Hello World");
Les parties du message sont:
Log
: Classe de journalisation (Log
) pour l'envoi de messages de journalisation au volet Logcat.d
: le paramètre de niveau du journal de débogage (Debug) permettant de filtrer les messages du journal s'affiche dans le volet Logcat. Les autres niveaux de journalisation sont e
pour Error, w
pour Warn et i
pour Info."MainActivity"
: Le premier argument est une balise qui peut être utilisée pour filtrer les messages dans le volet Logcat. C'est généralement le nom de l'activité (Activity
) à l'origine du message. Cependant, vous pouvez faire tout ce qui vous est utile pour le débogage.Par convention, les balises de journal sont définies en tant que constantes pour l'activité (Activity
):
private static final String LOG_TAG = MainActivity.class.getSimpleName();
"Hello world"
: Le deuxième argument est le message réel.Suivez ces étapes:
MainActivity
.android.util.Log
requis pour utiliser Log
), choisissez File > SettingsonCreate()
de MainActivity
, ajoutez l'instruction suivante:Log.d("MainActivity", "Hello World");
La méthode onCreate()
devrait maintenant ressembler au code suivant:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("MainActivity", "Hello World");
}
Log
dans le volet Logcat sur Debug (ou laissez-le sur Verbose car il y a si peu de messages de journal).Le message suivant devrait apparaître dans le volet Logcat:
11-24 14:06:59.001 4696-4696/? D/MainActivity: Hello World
Documentation d'Android Studio:
Log
classAutre:
onCreate()
dans l'activité principale.Quel est le nom du fichier de mise en page de l'activité principale?
MainActivity.java
AndroidManifest.xml
activity_main.xml
build.gradle
Quel est le nom de la ressource chaîne qui spécifie le nom de l'application?
app_name
xmlns:app
android:name
applicationId
Quel outil utilisez-vous pour créer un nouvel émulateur?
Supposons que votre application inclut cette instruction de journalisation:
Log.i("MainActivity", "MainActivity layout is complete");
Vous voyez la mention "MainActivity layout is complete" dans le volet Logcat si le menu de niveau Log est réglé sur lequel des éléments suivants?
Vérifiez que l'application dispose des éléments suivants:
Log
dans onCreate()
dans l'activité principale.Log
dans le volet Logcat n'affiche que les instructions de débogage ou d'erreurs.