Configurer la distribution instantanée

Google Play Instant permet aux utilisateurs d'interagir avec votre application sans avoir à installer de fichiers APK sur leur appareil. En revanche, ils peuvent accéder à votre application via le bouton "Essayer" du Google Play Store ou via une URL que vous avez créée. Ce mode de diffusion de contenu vous permet d'accroître l'engagement avec votre application.

Vous ne pouvez activer la diffusion instantanée d'une fonctionnalité que si vous le faites également pour le module de base de votre application. En effet, si un utilisateur souhaite accéder à l'un des modules de fonctionnalités permettant une utilisation instantanée de votre application, son appareil doit également télécharger le module de base qui contient le code et les ressources courants. N'oubliez pas que, pour assurer la compatibilité avec Google Play Instant, le téléchargement de votre module de base et de la fonctionnalité doit répondre à plusieurs critères :

Si vous créez un module de fonctionnalité permettant une utilisation instantanée avec Android Studio 3.5 ou une version ultérieure, comme décrit dans cette section, l'IDE active automatiquement la base et le module de fonctionnalité, en incluant les éléments suivants dans le fichier manifeste de chaque module :

<manifest xmlns:dist="http://schemas.android.com/apk/distribution"
    ... >
    <dist:module dist:instant="true" />
    ...

De plus, lorsque vous téléchargez et installez votre application, des modules de fonctionnalités permettant une utilisation instantanée sont automatiquement téléchargés et installés avec l'APK de base de votre application. Ainsi, l'IDE inclut également les éléments suivants dans le module de fonctionnalité permettant une utilisation instantanée.

    <dist:module ...>
        <dist:delivery>
            <dist:install-time />
        </dist:delivery>
    </dist:module>

Cela signifie que lorsque vous définissez dist:instant="true", vous ne pouvez pas également inclure <dist:on-demand />. Toutefois, vous pouvez obtenir des modules permettant une utilisation instantanée à la demande dans votre expérience instantanée à l'aide de la bibliothèque Play Feature Delivery.

Configurer un nouveau module à diffusion instantanée

Pour ajouter un module de fonctionnalité permettant une utilisation instantanée avec Android Studio, procédez comme suit :

  1. Si vous ne l'avez pas déjà fait, ouvrez votre projet d'application dans l'IDE.
  2. Sélectionnez Fichier > Nouveau > Nouveau module dans la barre de menu.
  3. Dans la boîte de dialogue Créer un module, sélectionnez Module de fonctionnalité dynamique instantanée, puis cliquez sur Suivant.
  4. Dans la section Configurer votre nouveau module, procédez comme suit :

    1. Sélectionnez le module d'application de base pour votre projet d'application dans le menu déroulant.
    2. Spécifiez un nom de module. L'IDE utilise ce nom pour identifier le module en tant que sous-projet Gradle dans votre fichier de paramètres Gradle. Lorsque vous créez votre app bundle, Gradle utilise le dernier élément du nom du sous-projet pour injecter l'attribut <manifest split> dans le fichier manifeste du module de fonctionnalité.
    3. Spécifiez le nom du package du module. Par défaut, Android Studio suggère un nom de package qui combine le nom du package racine du module de base et le nom du module que vous avez spécifié à l'étape précédente.
    4. Sélectionnez le niveau d'API minimal que le module doit accepter. Cette valeur doit correspondre à celle du module de base.
    5. Spécifiez le titre du module en utilisant jusqu'à 50 caractères. La plate-forme utilise ce titre pour que les utilisateurs puissent identifier le module. Pour cette raison, le module de base de votre application doit inclure le titre du module en tant que ressource de chaîne, que vous pouvez traduire. Lors de la création du module à l'aide d'Android Studio, l'IDE ajoute la ressource de chaîne au module de base et injecte l'entrée suivante dans le fichier manifeste du module de fonctionnalité :

      <dist:module
          ...
          dist:title="@string/feature_title">
      </dist:module>
      
    6. Cochez la case Fusion si vous souhaitez que ce module soit disponible pour les appareils équipés d'Android 4.4 (niveau d'API 20) ou version antérieure et inclus dans plusieurs APK. Android Studio injecte les éléments suivants dans le fichier manifeste du module pour refléter votre choix.

      <dist:module>
          <dist:fusing dist:include="true" />
      </dist:module>
      
  5. Cliquez sur Terminer.

Une fois qu'Android Studio a terminé de créer votre module, examinez vous-même son contenu à partir du volet Projet. Pour y accéder, sélectionnez Affichage > Fenêtres d'outils > Projet dans la barre de menu. Le code, les ressources et l'organisation par défaut doivent être semblables à ceux du module d'application standard.

Après avoir implémenté une fonctionnalité que vous souhaitez télécharger à la demande, découvrez comment la demander à l'aide de la bibliothèque Play Feature Delivery.

Déployer l'application

Lorsque vous développez une application avec prise en charge des modules de fonctionnalités, vous pouvez la déployer sur un appareil connecté comme vous le feriez normalement en sélectionnant Exécuter > Exécuter dans la barre de menu, ou en cliquant sur Exécuter  dans la barre d'outils.

Si votre projet d'application inclut un ou plusieurs modules de fonctionnalité, vous pouvez choisir les fonctionnalités à inclure lors du déploiement de votre application en modifiant votre configuration d'exécution/de débogage existante comme suit :

  1. Sélectionnez Exécuter > Modifier les configurations dans la barre de menu.
  2. Dans le panneau de gauche de la boîte de dialogue Configurations d'exécution/de débogage, sélectionnez la configuration d'application Android souhaitée.
  3. Sous Fonctionnalités dynamiques à déployer dans l'onglet Général, cochez la case située à côté de chaque module de fonctionnalité que vous souhaitez inclure lors du déploiement de votre application.
  4. Cliquez sur OK.

Par défaut, Android Studio ne déploie pas vos modules permettant une utilisation instantanée sous forme d'expérience instantanée et n'utilise pas d'app bundles pour déployer votre application. L'IDE crée et installe sur votre appareil des APK optimisés pour la vitesse de déploiement, plutôt que pour la taille des APK. Pour configurer Android Studio afin qu'il crée et déploie plutôt des APK et des expériences instantanées à partir d'un app bundle, modifiez votre configuration d'exécution/de débogage.