Créer un app bundle permettant une utilisation instantanée

Vous créez une expérience Google Play Instant en l'incluant dans Un Android App Bundle Un tel groupe est appelé app bundle permettant une utilisation instantanée. Ce document explique comment configurer votre de développement pour les app bundles permettant une utilisation instantanée, ainsi que configurer, créer, tester et publier un app bundle permettant une utilisation instantanée.

Si vous disposez déjà d'un projet d'appli instantanée qui utilise la fonctionnalité obsolète plug-in (com.android.feature), découvrez comment migrer votre appli instantanée pour la rendre compatible avec le format Android App Bundle.

Configurer l'environnement de développement

Pour offrir une expérience instantanée dans un app bundle, vous devez avoir accès à l'application SDK de développement Google Play Instant. Vous pouvez installer le SDK des méthodes suivantes:

  • Installez Android Studio 3.6 ou version ultérieure. Après avoir ouvert Android Studio, téléchargez le SDK de développement Google Play Instant à partir de SDK Tools. de SDK Manager.
  • Effectuez l'installation à partir de la ligne de commande:

    cd path/to/android/sdk/tools/bin && \
      ./sdkmanager 'extras;google;instantapps'
    

De plus, si vous souhaitez tester votre expérience instantanée en local, accédez à un appareil physique ou virtuel.

En savoir plus sur les conditions d'exécution requises

Google Play Instant exécute des app bundles permettant une utilisation instantanée dans un type Bac à sable SELinux pour une sécurité renforcée Ce bac à sable autorise un sous-ensemble autorisations, ainsi que des types limités d'interactions avec d'autres applications. La les sections suivantes expliquent plus en détail les caractéristiques de ce bac à sable.

Autorisations et opérations compatibles

Les app bundles permettant une utilisation instantanée ne peuvent utiliser que les autorisations des listes suivantes:

Gérer les autorisations courantes non compatibles

Vous trouverez ci-dessous une liste des autorisations courantes et non prises en charge que vous devez supprimer. de votre application et le chemin de migration recommandé pour chacun d'eux:

  • ACCESS_WIFI_STATE: utilisez ACCESS_NETWORK_STATE, qui devrait fournir des informations semblables à celles de ACCESS_WIFI_STATE.
  • BILLING: il s'agit d'une autorisation obsolète. Utilisez les Bibliothèque Google Play Billing qui ne nécessite plus l'autorisation com.android.vending.BILLING.
  • READ/WRITE_EXTERNAL_STORAGE: les applis instantanées n'ont pas accès aux ressources externes stockage ; utiliser la mémoire de stockage interne à la place.
  • com.google.android.c2dm.permission.RECEIVE et permission.C2D_MESSAGE: C2DM est obsolète. Migrez vers Firebase Cloud Messaging (FCM). FCM ne le fait n'ont pas besoin d'autorisations supplémentaires pour fonctionner.

De plus, les app bundles permettant une utilisation instantanée ne peuvent pas:

Accès aux applications installées

Lorsque vous développez une expérience instantanée, n'oubliez pas qu'elle ne peut pas interagir avec des applications installées sur un appareil, sauf dans les cas suivants:

  • Une ou plusieurs activités d'une application installée ont défini leur Élément android:visibleToInstantApps dans true : cet élément est disponible aux applications fonctionnant sous Android 8.0 (niveau d'API 26) ou version ultérieure.
  • Une application installée contient un filtre d'intent qui inclut CATEGORY_BROWSABLE
  • L'expérience instantanée envoie un intent à l'aide de la méthode ACTION_SEND, ACTION_SENDTO ou ACTION_SEND_MULTIPLE action.

Configurer votre projet pour des expériences instantanées

Pour être compatible avec Google Play Instant, vous devez configurer plusieurs les aspects de votre app bundle permettant une utilisation instantanée. Les sections suivantes décrivent ces considérations.

Déclarer les dépendances du projet

Pour utiliser les API Google Play Instant dans votre application, incluez les éléments suivants : dans le fichier de configuration build.gradle de votre module d'application:

Groovy

implementation "com.google.android.gms:play-services-instantapps:17.0.0"

Kotlin

implementation("com.google.android.gms:play-services-instantapps:17.0.0")

Définir les codes de version appropriés

Le code de version de l'expérience instantanée de votre application doit être inférieur à code de version de l'application installable. On s'attend à ce que les utilisateurs passent l'expérience Google Play Instant sur le téléchargement et l'installation de l'application sur leur appareil. Le framework Android considère cette transition comme une application mise à jour.

Pour vous assurer de suivre le schéma de gestion des versions attendu par les utilisateurs, suivez de ces stratégies:

  • Redémarrez les codes de version pour l'expérience Google Play Instant à partir de 1.
  • Augmentez le code de version du fichier APK installable avec un nombre élevé, tel que 1 000, pour vous assurer que le numéro de version de l'expérience instantanée ait suffisamment de marge pour pouvoir évoluer.

Vous pouvez développer votre appli instantanée et votre application installable dans deux projets Android Studio. Dans ce cas, vous devez toutefois procéder comme suit pour publier votre application sur Google Play:

  1. Utilisez le même nom de package dans les deux projets Android Studio.
  2. Dans la Google Play Console, importez les deux variantes dans la même application.

Pour en savoir plus sur la configuration de la version de votre application, consultez la section Gérer les versions de votre application l'application Nest.

Mettre à jour la version du bac à sable cible

Le fichier AndroidManifest.xml de votre appli instantanée doit être mis à jour pour cibler environnement de bac à sable compatible avec Google Play Instant. Vous pouvez terminer cette mise à jour en ajoutant l'attribut android:targetSandboxVersion au fichier <manifest>, comme indiqué dans l'extrait de code suivant:

<manifest
   xmlns:android="http://schemas.android.com/apk/res/android"
  ...
   android:targetSandboxVersion="2" ...>

Pour en savoir plus, consultez la documentation concernant l'attribut targetSandboxVersion.

Déclarer des modules d'application permettant une utilisation instantanée

Vous pouvez déclarer que votre app bundle est compatible avec les expériences instantanées à l'aide de l'une des les méthodes suivantes:

  • Si vous disposez d'un app bundle existant qui ne contient qu'un fichier de base , vous pouvez activer instantanément l'app bundle comme suit:

    1. Ouvrez le panneau Projet en sélectionnant Vue > Fenêtres d'outil > Projet dans la barre de menu.
    2. Effectuez un clic droit sur votre module de base, généralement nommé "app", puis sélectionnez Refactoriser > Activer la compatibilité avec les applis instantanées.
    3. Dans la boîte de dialogue qui s'affiche, sélectionnez votre module de base dans le menu déroulant.
    4. Cliquez sur OK.

    Android Studio ajoute la déclaration suivante au fichier manifeste du module:

    <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
        <dist:module dist:instant="true" />
        ...
    </manifest>
    
  • Si vous disposez d'un app bundle existant qui contient plusieurs modules, vous pouvez Créer une fonctionnalité permettant une utilisation instantanée de ML. Ce processus permet également une utilisation instantanée du module de base de votre application, ce qui vous permet de prendre en charge entrée instantanée multiple points d'accès dans votre l'application.

Ajouter la prise en charge de la connexion

Si votre expérience instantanée permet aux utilisateurs de se connecter, votre application le bundle doit être compatible avec Smart Lock pour les mots de passe sur Android Si vous créez une vidéo "Jouer sans installation" jeu, utilisez plutôt la connexion aux services de jeux Google Play.

Prendre en charge l'environnement d'exécution

Pour assurer la compatibilité avec le bac à sable SELinux dans lequel les expériences instantanées s'exécutent, Tenez compte des points suivants lorsque vous créez votre app bundle permettant une utilisation instantanée:

  • Ne partagez pas la valeur de myUid(), qui est le rôle attribué par le noyau à votre UID.
  • Si votre application cible Android 8.1 (niveau d'API 27) ou une version antérieure, créez un Network Security Config et définissez De cleartextTrafficPermitted à false. Les expériences instantanées ne sont pas compatibles avec HTTP du trafic. Pour les applications qui ciblent Android 9 ou version ultérieure, le trafic en texte clair est sont désactivées par défaut.
  • Votre expérience instantanée reste téléchargée sur l'appareil de l'utilisateur jusqu'à ce que son cache soit vidé, ce qui se produit dans les situations suivantes :

    • Le cache de l'expérience instantanée est soumis à une récupération de mémoire, car l'appareil manque de mémoire disponible.
    • L'utilisateur redémarre son appareil.

    Si l'un de ces processus a lieu, l'utilisateur devra télécharger à nouveau votre expérience instantanée pour pouvoir interagir avec elle.

  • Si le système manque d'espace de stockage, il est possible que les données utilisateur de votre expérience instantanée soient supprimées de la mémoire de stockage interne. Par conséquent, il est est recommandé de synchroniser régulièrement les données utilisateur avec le serveur de votre application, afin que la progression de l'utilisateur est conservée.

Ajouter une logique pour les workflows d'expérience instantanée

Après avoir configuré votre app bundle pour qu'il soit compatible avec les expériences instantanées, ajoutez la logique décrite dans les sections suivantes.

Vérifier si l'application exécute l'expérience instantanée

Si la logique de votre application dépend en partie de l'engagement de l'utilisateur dans votre expérience instantanée, appelez la méthode isInstantApp() . Cette méthode renvoie true si le processus en cours d'exécution est une expérience instantanée.

Afficher une invite d'installation

Si vous développez une version d'essai de votre application ou de votre jeu, Google Play Instant vous permet d'afficher une invite dans votre une expérience instantanée, invitant les utilisateurs à installer l'expérience complète sur leur appareil. Pour afficher cette invite, utilisez les InstantApps.showInstallPrompt() , comme indiqué dans l'extrait de code suivant:

Kotlin

class MyInstantExperienceActivity : AppCompatActivity {
    // ...
    private fun showInstallPrompt() {
        val postInstall = Intent(Intent.ACTION_MAIN)
                .addCategory(Intent.CATEGORY_DEFAULT)
                .setPackage(your-installed-experience-package-name)

        // The request code is passed to startActivityForResult().
        InstantApps.showInstallPrompt(this@MyInstantExperienceActivity,
                postInstall, request-code, /* referrer= */ null)
    }
}

Java

public class MyInstantExperienceActivity extends AppCompatActivity {
    // ...
    private void showInstallPrompt() {
        Intent postInstall = new Intent(Intent.ACTION_MAIN)
                .addCategory(Intent.CATEGORY_DEFAULT)
                .setPackage(your-installed-experience-package-name);

        // The request code is passed to startActivityForResult().
        InstantApps.showInstallPrompt(MyInstantExperienceActivity.this,
                postInstall, request-code, /* referrer= */ null);
    }
}

Transférer les données vers une expérience installée

Si l'utilisateur apprécie votre expérience instantanée, il peut décider d'installer votre l'application. Pour offrir une bonne expérience utilisateur, il est important que les données de l'utilisateur sont transférées de votre expérience instantanée vers de votre application.

Si l'utilisateur utilise un appareil équipé d'Android 8.0 (niveau d'API 26) ou version ultérieure, Si votre application spécifie un targetSandboxVersion de 2, les données de l'utilisateur sont transférées automatiquement à la version complète de votre application. Sinon, vous devez transférer manuellement. Pour ce faire, utilisez l'une des API suivantes:

  • Pour les utilisateurs d'appareils équipés d'Android 8.0 (niveau d'API 26) ou version ultérieure : Utiliser l'API Cookie (application exemple)
  • Si les utilisateurs peuvent interagir avec votre expérience sur des appareils équipés d'Android 7.1 (niveau d'API 25) ou version antérieure, ajoutez la prise en charge de l'API Storage : application exemple

Créer l'app bundle

Vous pouvez utiliser Android Studio ou l'interface de ligne de commande pour créer votre app bundle permettant une utilisation instantanée.

Android Studio

Avec Android Studio, vous pouvez créer votre app bundle en sélectionnant Créer > Compiler des bundles/APK > Créer un ou plusieurs groupes Pour en savoir plus, sur la création de votre projet, consultez la section Créer votre projet.

Interface de ligne de commande

Vous pouvez également créer l'app bundle à partir de la commande à l'aide de Gradle.

Assurer la compatibilité avec les architectures 64 bits

Les applications publiées sur Google Play doivent être compatibles avec les architectures 64 bits. L'ajout d'une version 64 bits de votre application améliore les performances et vous permet de prendre en charge des appareils avec du matériel 64 bits uniquement. En savoir plus sur la compatibilité avec les architectures 64 bits

Tester l'expérience instantanée

Avant de publier votre app bundle permettant une utilisation instantanée, vous pouvez tester l'appli instantanée depuis l'un des emplacements suivants pour en vérifier le fonctionnement:

Android Studio

Pour tester l'expérience instantanée de votre application sur un ordinateur local à l'aide d'Android Studio, procédez comme suit : procédez comme suit:

  1. Si une version installée de votre application est installée sur votre appareil de test, désinstallez-la
  2. Dans Android Studio, à partir des options d'installation qui s'affichent sur la Onglet General (Général) de Run/Debug Configurations (Configurations d'exécution/de débogage) , activez l'option Déployer instantanément application.
  3. Sélectionnez Exécuter > Exécutez dans la barre de menu ou cliquez sur Run (Exécuter) dans la barre d'outils, puis choisissez l'appareil sur lequel vous souhaitez tester expériences. L'expérience instantanée de votre application se charge sur l'appareil de test que vous avez choisi.

Interface de ligne de commande

Pour tester l'expérience instantanée de votre application sur un ordinateur local à l'aide de la ligne de commande, procédez comme suit:

  1. Si une version installée de votre application est installée sur votre appareil de test, désinstallez-la
  2. Téléchargez et exécutez votre appli instantanée sur votre appareil de test en saisissant la la commande suivante:
ia run output-from-build-command

Canal de test interne

Pour tester l'expérience instantanée de votre application depuis le Play Store ou une bannière sur votre site Web, publiez l'application dans le test interne titre sur la Play Console.

Pour publier votre application dans le canal de test interne, procédez comme suit:

  1. Importez votre app bundle en suivant la procédure décrite dans la section Importer votre app bundle dans le guide de la Play Console.
  2. Préparez le bundle importé en vue d'une publication dans le canal de test interne. Pour plus d'informations, consultez l'article d'aide Préparer et déployer versions.
  3. Connectez-vous à un compte de testeur interne sur un appareil, puis lancez votre appli instantanée depuis l'une des surfaces suivantes:

    • Le bouton Essayer sur la fiche Play Store de votre application
    • Lien d'une bannière sur le site Web de votre application.

Publier l'app bundle en canal de production

Pour publier votre app bundle permettant une utilisation instantanée, procédez comme suit:

  1. Si vous ne l'avez pas déjà fait, signez votre app bundle avec une release. et importez l'app bundle Play Console.
  2. Dans la Play Console, accédez à Gestion des versions > Applis instantanées Android, puis accédez au canal de production d'une appli instantanée.
  3. Sélectionnez Mettre à jour à partir de la bibliothèque, puis sélectionnez l'app bundle permettant une utilisation instantanée que vous avez importées.

Choisissez où publier votre expérience instantanée

Il est possible de lancer une expérience instantanée de votre application dans un sous-ensemble pays et régions dans lesquels les utilisateurs peuvent installer votre application. Cette fonctionnalité est utile si vous souhaitez promouvoir l'expérience instantanée de votre application les utilisateurs résidant dans un ensemble spécifique de pays et de régions.

Ressources supplémentaires

Pour en savoir plus sur la création d'expériences instantanées et d'Android App Bundle, consultez les ressources suivantes:

Vidéo: Regroupement d'une application en un instant
Découvrez comment ajouter une expérience instantanée à un Android App Bundle dans ce du Sommet des développeurs Android 2018.
Vidéo: Publier des applications plus petites au format Android App Bundle
Découvrez comment les app bundles vous permettent de développer plus rapidement votre application et de créer des APK plus petits pour vos utilisateurs.
Atelier de programmation: Votre premier Android App Bundle
Un guide par étapes sur la création d'un Android App Bundle et l'ajout de fonctionnalités à de manière sécurisée.
Format Android App Bundle
En savoir plus sur la façon dont le programme de ligne de commande bundletool organise une application à partir du code et des ressources de votre application.