Comment construire un APK dans Android studio


Android Studio configure de nouveaux projets à déployer sur l'émulateur Android ou un appareil connecté en quelques clics. Une fois votre application installée, vous pouvez utiliser Appliquer les modifications pour déployer certains changements de code et de ressources sans construire un nouvel APK.

Pour construire et exécuter votre application, suivez ces étapes :

  1. Dans la barre d'outils, sélectionnez votre application dans le menu déroulant des configurations d'exécution.
  2. Dans le menu déroulant du périphérique cible, sélectionnez le périphérique sur lequel vous souhaitez exécuter votre app.Si vous n'avez aucun périphérique configuré, vous devez alors soit connecter un périphérique via USB, soit créer un AVD pour utiliser l'émulateur Android.
  3. Cliquez sur Run .

Note : Vous pouvez également déployer votre app en mode débogage en cliquant sur Debug . L'exécution de votre app en mode débogage vous permet de définir des points d'arrêt dans votre code, d'examiner les variables et d'évaluer les expressions au moment de l'exécution, et d'exécuter des outils de débogage. Pour en savoir plus, consultez la section Déboguer votre application.

Modifier la configuration d'exécution/débogage


Lorsque vous exécutez votre application pour la première fois, Android Studio utilise une configuration d'exécution par défaut. La configuration d'exécution spécifie s'il faut déployer votre application à partir d'un APK ou d'un Android App Bundle, le module à exécuter, le paquet à déployer, l'activité à lancer, le périphérique cible, les paramètres de l'émulateur, les options logcat, et plus encore.

La configuration d'exécution/débogage par défaut construit un APK, lance l'activité de projet par défaut et utilise la boîte de dialogue Sélectionner la cible de déploiement pour la sélection du périphérique cible. Si les paramètres par défaut ne conviennent pas à votre projet ou module, vous pouvez personnaliser la configuration d'exécution/débogage, ou même en créer une nouvelle, aux niveaux du projet, de la valeur par défaut et du module. Pour modifier une configuration d'exécution/débogage, sélectionnez Run > Edit Configurations. Pour plus d'informations, consultez la section Créer et modifier des configurations d'exécution/débogage.

Changer la variante de construction

Par défaut, Android Studio construit la version de débogage de votre application, qui est destinée à être utilisée uniquement pendant le développement, lorsque vous cliquez sur Exécuter.

Pour modifier la variante de construction utilisée par Android Studio, sélectionnez Construction > Sélectionner la variante de construction dans la barre de menus.

Pour les projets sans code natif/C++, le panneau Variantes de construction comporte deux colonnes : Module et Variante de construction active. La valeur Active Build Variant pour le module détermine la variante de build que l'IDE déploie sur votre appareil connecté et qui est visible dans l'éditeur.

main-qimg-e2e2b4076168bd35ed022279e1bea042

Figure 1. Le panneau Build Variants comporte deux colonnes pour les projets ne comportant pas de code natif/C++

Pour passer d'une variante à l'autre, cliquez sur la cellule Active Build Variant d'un module et choisissez la variante souhaitée dans la zone de liste.

Pour les projets comportant du code natif/C++, le panneau Build Variants comporte trois colonnes : Module, Variante de construction active et ABI active. La valeur Active Build Variant pour le module détermine la variante de construction que l'IDE déploie sur votre appareil et qui est visible dans l'éditeur. Pour les modules natifs, la valeur Active ABI détermine l'ABI que l'éditeur utilise, mais n'a pas d'impact sur ce qui est déployé.

main-qimg-c0e0da0b39b50d0cb74a68c45274bf81

Figure 2. Le panneau Variantes de construction ajoute la colonne ABI active pour les projets avec du code natif/C++

Pour modifier la variante de construction ou l'ABI, cliquez sur la cellule de la colonne Variante de construction active ou ABI active et choisissez la variante ou l'ABI souhaitée dans la liste. Après avoir modifié la sélection, l'IDE synchronise automatiquement votre projet. La modification de l'une ou l'autre colonne pour une app ou un module de bibliothèque appliquera la modification à toutes les lignes dépendantes.

Par défaut, les nouveaux projets sont configurés avec deux variantes de construction : une variante de débogage et une variante de version. Vous devez construire la variante de publication pour préparer votre app à la publication publique.

Pour construire d'autres variantes de votre app, chacune avec des fonctionnalités ou des exigences de périphérique différentes, vous pouvez définir des variantes de construction supplémentaires.

Construire votre projet

Le bouton Run

main-qimg-160241ac3437e00c9deee4091c4ac598

construit et déploie votre app sur un périphérique. Cependant, pour construire votre application afin de la partager ou de la télécharger sur Google Play, vous'devez utiliser l'une des options du menu Build pour compiler tout ou partie de votre projet. Avant de sélectionner l'une des options de construction répertoriées dans le tableau 1, assurez-vous de sélectionner d'abord la variante de construction que vous souhaitez utiliser.

Remarque : Android Studio nécessite AAPT2 pour construire des paquets d'applications, qui est activé par défaut pour les nouveaux projets. Cependant, pour vous assurer qu'il est activé sur les projets existants, incluez android.enableAapt2=true dans votre fichier gradle.properties et redémarrez le démon Gradle en exécutant ./gradlew --stop depuis la ligne de commande.

Tableau 1. Options de construction dans le menu Build.

Elément de menu

Description

Make Module

Compile tous les fichiers sources du module sélectionné qui ont été modifiés depuis la dernière construction, ainsi que tous les modules dont le module sélectionné dépend de manière récursive. La compilation inclut les fichiers sources dépendants et toutes les tâches de construction associées. Vous pouvez sélectionner le module à compiler en sélectionnant soit le nom du module, soit l'un de ses fichiers dans la fenêtre Projet. Cette commande ne génère pas d'APK.

Make Project

Fabrique tous les modules.

Clean Project

Supprime tous les fichiers de compilation intermédiaires/cache.

Rebuild Project

Exécute Clean Project pour la variante de construction sélectionnée et produit un APK.

Build Bundle(s) / APK(s) > Build APK(s)

Construit un APK de tous les modules du projet actuel pour leur variante sélectionnée. Lorsque la construction est terminée, une notification de confirmation apparaît, fournissant un lien vers le fichier APK et un lien pour l'analyser dans l'APK Analyzer.

Si la variante de construction que vous'avez sélectionnée est un type de construction de débogage, alors l'APK est signé avec une clé de débogage et il'est prêt à être installé. Si vous avez sélectionné une variante de version, par défaut, l'APK n'est pas signé et vous devez le signer manuellement. Sinon, vous pouvez sélectionner Build > Generate Signed Bundle / APK dans la barre de menus.

Android Studio enregistre les APK que vous construisez dans

nom-du-projet

/

nom-du-module

/build/outputs/apk/.

Build Bundle(s) / APK(s) > Build Bundle(s)

Construit un Android App Bundle de tous les modules du projet actuel pour leur variante sélectionnée. Lorsque la construction est terminée, une notification de confirmation apparaît, fournissant un lien vers le bundle d'app et un lien pour l'analyser dans l'APK Analyzer.

Si la variante de construction que vous'avez sélectionnée est un type de construction de débogage, alors le bundle d'app est signé avec une clé de débogage, et vous pouvez utiliser bundletool pour déployer votre app à partir du bundle d'app sur un appareil connecté. Si vous avez sélectionné une variante de version, le paquet d'applications n'est pas signé par défaut et vous devez le signer manuellement à l'aide de jarsigner. Vous pouvez également sélectionner Build > Generate Signed Bundle / APK dans la barre de menus.

Android Studio enregistre les APK que vous construisez dans

nom-du-projet

/

nom-du-module

/build/outputs/bundle/.

Générer un bundle / APK signé

Débute une boîte de dialogue avec un assistant pour définir une nouvelle configuration de signature, et construire soit un bundle d'apps ou un APK signé. Vous devez signer votre app avec une clé de libération avant de pouvoir la télécharger sur la Play Console. Pour plus d'informations sur la signature des apps, consultez Signer votre app.

Note : le bouton Run

main-qimg-160241ac3437e00c9deee4091c4ac598

construit un APK avec testOnly="true", ce qui signifie que l'APK ne peut être installé que via adb (qu'Android Studio utilise). Si vous voulez un APK débuggable que les gens peuvent installer sans adb, sélectionnez votre variante de débogage et cliquez sur Build Bundle(s) / APK(s) > Build APK(s).

Pour obtenir des détails sur les tâches que Gradle exécute pour chaque commande, ouvrez la fenêtre Build comme décrit dans la section suivante. Pour plus d'informations sur Gradle et le processus de construction, voir Configurer votre construction.

Surveiller le processus de construction

Vous pouvez afficher les détails du processus de construction en cliquant sur Affichage > Fenêtres d'outils > Construction (ou en cliquant sur Construction

main-qimg-d95e918381fcb191250ddacef4918cfc

dans la barre des fenêtres d'outils). La fenêtre affiche les tâches que Gradle exécute afin de construire votre application, comme le montre la figure 3.

main-qimg-f6d8db3dba952036e57a6b8efce2f160

Figure 3. La fenêtre de sortie Build dans Android Studio

  1. Onglet Build : Affiche les tâches que Gradle exécute sous forme d'arbre, où chaque nœud représente soit une phase de construction, soit un groupe de dépendances de tâches. Si vous recevez des erreurs de construction ou de compilation, inspectez l'arbre et sélectionnez un élément pour lire la sortie d'erreur, comme le montre la figure 4. Figure 4. Inspecter la fenêtre de sortie de construction pour les messages d'erreur
  2. Onglet Sync : Affiche les tâches que Gradle exécute pour se synchroniser avec les fichiers de votre projet. Comme pour l'onglet Build, si vous rencontrez une erreur de synchronisation, sélectionnez des éléments dans l'arbre pour trouver plus d'informations sur l'erreur.
  3. Restart : Effectue la même action que la sélection de Build > Make Project en générant des fichiers de construction intermédiaires pour tous les modules de votre projet.
  4. Toggle view : Bascule entre l'affichage de l'exécution des tâches sous forme d'arbre graphique et l'affichage d'une sortie texte plus détaillée de Gradle - il s'agit de la même sortie que celle que vous voyez dans la fenêtre de la console Gradle sur Android Studio 3.0 et antérieur.

Si vos variantes de construction utilisent des saveurs de produit, Gradle invoque également des tâches pour construire ces saveurs de produit. Pour afficher la liste de toutes les tâches de construction disponibles, cliquez sur Affichage > Fenêtres d'outils > Gradle (ou cliquez sur Gradle

main-qimg-2dd7c549fba4fd2d29a2ebe022e0ce09

dans la barre des fenêtres d'outils).

Si une erreur se produit pendant le processus de construction, Gradle peut recommander certaines options de ligne de commande pour vous aider à résoudre le problème, telles que --stacktrace ou --debug. Pour utiliser les options de ligne de commande avec votre processus de construction :

  1. Ouvrir la boîte de dialogue Paramètres ou Préférences :Sous Windows ou Linux, sélectionnez Fichier > Paramètres dans la barre de menus.Sous Mac OSX, sélectionnez Android Studio > Préférences dans la barre de menus.
  2. Naviguer vers Construction, exécution, déploiement > Compilateur.
  3. Dans la zone de texte située à côté de Options de ligne de commande, saisissez vos options de ligne de commande.
  4. Cliquez sur OK pour enregistrer et quitter.

Gradle applique ces options de ligne de commande la prochaine fois que vous essayez de construire votre application.

Appliquer des modifications

Dans Android Studio 3.5 et plus, Appliquer des modifications vous permet de pousser des modifications de code et de ressources à votre application en cours d'exécution sans redémarrer votre application - et, dans certains cas, sans redémarrer l'activité en cours. Cette flexibilité vous permet de contrôler la part de votre application qui est redémarrée lorsque vous souhaitez déployer et tester de petites modifications incrémentielles tout en préservant l'état actuel de votre appareil. Appliquer les modifications utilise les capacités de l'implémentation Android JVMTI qui sont prises en charge sur les appareils fonctionnant sous Android 8.0 (niveau 26 de l'API) ou plus. Pour en savoir plus sur le fonctionnement d'Appliquer les modifications, consultez la section Marbre de projet Android Studio : Appliquer les modifications.

Conditions requises

Les actions Appliquer les modifications ne sont disponibles que si vous remplissez les conditions suivantes :

  • Vous construisez l'APK de votre application à l'aide d'une variante de construction de débogage.
  • Vous déployez votre application sur un appareil cible ou un émulateur qui exécute Android 8.0 (niveau 26 de l'API) ou supérieur.

Utiliser Appliquer les modifications

Utiliser les options suivantes lorsque vous souhaitez déployer vos modifications sur un appareil compatible :

Appliquer les modifications et redémarrer l'activité

main-qimg-71a50dbba44c78128b221b7df7bb51f1.webp

Tente d'appliquer à la fois vos modifications de ressources et de code en redémarrant votre activité mais sans redémarrer votre app. Généralement, vous pouvez utiliser cette option lorsque vous'avez modifié le code dans le corps d'une méthode ou modifié une ressource existante.

Vous pouvez également effectuer cette action en appuyant sur Ctrl+Alt+F10 (ou Control+Shift+Command+R sur macOS).

Appliquer les modifications de code

Tente d'appliquer uniquement vos modifications de code sans redémarrer quoi que ce soit. Généralement, vous pouvez utiliser cette option lorsque vous'avez modifié le code dans le corps d'une méthode mais que vous n'avez modifié aucune ressource. Si vous'avez modifié à la fois le code et les ressources, utilisez plutôt Appliquer les modifications et redémarrer l'activité.

Vous pouvez également effectuer cette action en appuyant sur Ctrl+F10 (ou Control+Command+R sur macOS).

Exécuter

Déploie toutes les modifications et redémarre l'application. Utilisez cette option lorsque les modifications que vous avez apportées ne peuvent pas être appliquées à l'aide de l'une des options Appliquer les modifications. Pour en savoir plus sur les types de modifications qui nécessitent un redémarrage de l'application, consultez la section Limites de l'option Appliquer les modifications.

Activer l'option Run fallback pour l'option Appliquer les modifications

Après que vous'ayez cliqué soit sur Appliquer les modifications et redémarrer l'activité, soit sur Appliquer les modifications du code, Android Studio construit un nouvel APK et détermine si les modifications peuvent être appliquées. Si les modifications ne peuvent'tre appliquées et entraîneraient l'échec de l'application des modifications, Android Studio vous invite à exécuter

à nouveau votre application à la place. Cependant, si vous ne voulez pas être invité à chaque fois que cela se produit, vous pouvez configurer Android Studio pour qu'il réexécute automatiquement votre application lorsque les modifications ne peuvent pas être appliquées.

Pour activer ce comportement, suivez ces étapes :

  1. Ouvrir la boîte de dialogue Paramètres ou Préférences :Sous Windows ou Linux, sélectionnez Fichier > Paramètres dans la barre de menus.Sous macOS, sélectionnez Android Studio > Préférences dans la barre de menus.
  2. Naviguez vers Build, Execution, Deployment > Deployment.
  3. Cochez les cases pour activer le repli automatique Run pour l'une ou l'autre des actions Appliquer les modifications.
  4. Cliquez sur OK.

Note : certains types de modifications ne'provoquent pas l'échec d'Appliquer les modifications, mais nécessitent tout de même que vous redémarriez votre application manuellement avant de pouvoir voir ces modifications. Par exemple, si vous apportez des modifications à la méthode onCreate() d'une activité's, ces modifications ne prennent effet qu'après le relancement de l'activité, vous devez donc redémarrer votre app pour voir ces modifications.

Limitations de l'application des modifications

L'application des modifications est conçue pour accélérer le processus de déploiement de l'app. Cependant, il existe certaines limites quant au moment où il peut être utilisé. Si vous rencontrez des problèmes lors de l'utilisation d'Apply Changes, déposez un bug.

Modifications de code qui nécessitent le redémarrage de l'app

Certaines modifications de code et de ressources ne peuvent pas être appliquées avant le redémarrage de l'app, notamment les suivantes :

  • Ajout ou suppression d'une méthode ou d'un champ
  • Modification des signatures de méthode
  • Modification des modificateurs de méthodes ou de classes
  • Modification de l'héritage de classe
  • Modification des valeurs dans les enums
  • Ajout. ou supprimer une ressource
  • Changer le manifeste de l'app
  • Changer les bibliothèques natives (fichiers SO)

Librairies et plugins

Certaines bibliothèques et plugins apportent automatiquement des modifications aux fichiers manifestes de votre app&apos ;s manifest files or to resources that are referenced in the manifest. Ces mises à jour automatiques peuvent interférer avec l'application des modifications de la manière suivante :

  • Si une bibliothèque ou un plugin apporte des modifications au manifeste de votre app's, vous ne pouvez'utiliser ni l'application des modifications de code ni l'application des modifications et l'activité de redémarrage et devez redémarrer votre app avant de pouvoir voir vos modifications.
  • Si une bibliothèque ou un plugin apporte des modifications aux fichiers de ressources de votre app's, vous ne pouvez'utiliser l'application des modifications de code , et vous devez utiliser l'application des modifications et l'activité de redémarrage pour voir vos modifications.

Vous pouvez éviter ces limitations en désactivant toutes les mises à jour automatiques pour vos variantes de build de débogage.

Par exemple, Crashlytics met à jour les ressources de l'app avec un identifiant de build unique lors de chaque build, ce qui vous empêche d'utiliser Appliquer les modifications de code

et vous oblige à relancer l'activité de votre app'e pour voir vos modifications. Vous pouvez désactiver ce comportement afin de pouvoir utiliser Appliquer les modifications de code aux côtés de Crashlytics avec vos builds de débogage.

Code qui fait directement référence au contenu d'un APK installé

Si votre code fait directement référence au contenu de votre app's APK qui's'est installé sur l'appareil, ce code peut provoquer des plantages ou se comporter de manière incorrecte après avoir cliqué sur Appliquer les modifications de code

. Ce comportement se produit parce que lorsque vous cliquez sur Appliquer les modifications de code, l'APK sous-jacent sur l'appareil est remplacé pendant l'installation. Dans ces cas, vous pouvez cliquer sur Appliquer les modifications et relancer l'activité

.