Avertissement : Google Play Instant ne sera plus disponible. À partir de décembre 2025, les Applis instantanées ne pourront plus être publiées sur Google Play, et toutes les API Instant des services Google Play ne fonctionneront plus. Play ne proposera plus d'applis instantanées aux utilisateurs, quel que soit le mécanisme utilisé.
Nous apportons cette modification en fonction des commentaires des développeurs et de nos investissements continus pour améliorer l'écosystème depuis l'introduction de Google Play Instantané.
Pour continuer à optimiser la croissance du nombre d'utilisateurs, nous encourageons les développeurs à rediriger les utilisateurs vers leur application ou leur jeu habituels à l'aide de liens profonds pour les rediriger vers des parcours ou des fonctionnalités spécifiques, le cas échéant.
Pour créer une expérience Google Play Instant, vous devez l'inclure dans un Android App Bundle. Un tel bundle est appelé app bundle permettant une utilisation instantanée. Ce document vous explique comment configurer votre environnement de développement pour les bundles d'applications compatibles avec les applications instantanées, et comment configurer, compiler, tester et publier un bundle d'applications compatible avec les applications instantanées.
Si vous disposez d'un projet d'appli instantanée existant qui utilise le plug-in de fonctionnalité obsolète (com.android.feature
), découvrez comment migrer votre appli instantanée pour qu'elle soit compatible avec les Android App Bundles.
Configurer l'environnement de développement
Pour proposer une expérience instantanée dans un app bundle, vous devez avoir accès au SDK Google Play Instant Development. Vous pouvez installer le SDK à l'aide de l'une 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 depuis l'onglet SDK Tools (Outils SDK) dans SDK Manager.
Installez-le à 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 les bundles d'applications compatibles avec Instant dans un type spécial de bac à sable SELinux pour une sécurité renforcée. Ce bac à sable autorise un sous-ensemble d'autorisations, ainsi que des types d'interactions limités avec d'autres applications. Les sections suivantes décrivent 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 de la liste suivante :
ACCESS_COARSE_LOCATION
ACCESS_FINE_LOCATION
ACCESS_NETWORK_STATE
BILLING
– Obsolète depuis la bibliothèque Play Billing 1.0.CAMERA
INSTANT_APP_FOREGROUND_SERVICE
– uniquement dans Android 8.0 (niveau d'API 26) et versions ultérieures.INTERNET
READ_PHONE_NUMBERS
: uniquement dans Android 8.0 (niveau d'API 26) et versions ultérieures.RECORD_AUDIO
VIBRATE
WAKE_LOCK
Gérer les autorisations non compatibles courantes
Vous trouverez ci-dessous une liste des autorisations courantes non prises en charge que vous devez supprimer de votre application, ainsi que le chemin de migration recommandé pour chacune d'elles :
ACCESS_WIFI_STATE
: utilisezACCESS_NETWORK_STATE
, qui devrait fournir des informations semblables àACCESS_WIFI_STATE
.BILLING
: il s'agit d'une autorisation obsolète. Utilisez la bibliothèque Google Play Billing, qui ne nécessite plus l'autorisationcom.android.vending.BILLING
.READ/WRITE_EXTERNAL_STORAGE
: Les applis instantanées n'ont pas accès au stockage externe. Utilisez plutôt le stockage interne.com.google.android.c2dm.permission.RECEIVE
etpermission.C2D_MESSAGE
: C2DM est obsolète. Migrez vers Firebase Cloud Messaging (FCM). FCM n'a besoin d'aucune autorisation supplémentaire pour fonctionner.
De plus, les app bundles activés pour une appli instantanée ne peuvent pas :
- Utilisez des services d'arrière-plan.
- Envoyer des notifications en cas d'exécution en arrière-plan.
Accès aux applications installées
Lorsque vous développez une expérience instantanée, gardez à l'esprit qu'elle ne peut pas interagir avec les applications installées sur un appareil, sauf si l'une des conditions suivantes est remplie :
- Une ou plusieurs activités d'une application installée ont défini leur élément
android:visibleToInstantApps
surtrue
. Cet élément est disponible pour les applications exécutant 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 consiste à envoyer un intent à l'aide de l'action
ACTION_SEND
,ACTION_SENDTO
ouACTION_SEND_MULTIPLE
.
Configurer votre projet pour les expériences instantanées
Pour être compatible avec Google Play Instant, vous devez configurer soigneusement plusieurs aspects de votre app bundle activé pour une appli instantanée. Les sections suivantes décrivent ces considérations.
Déclarer les dépendances du projet
Pour utiliser les API Google Play Instantané dans votre application, incluez la déclaration suivante 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 au code de version de l'application installable. L'objectif est que les utilisateurs passent de l'expérience instantanée Google Play au téléchargement et à l'installation de l'application sur leur appareil. Le framework Android considère cette transition comme une mise à jour d'application.
Pour vous assurer de respecter le schéma de gestion des versions attendu par les utilisateurs, suivez l'une des stratégies suivantes :
- 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 l'application instantanée et l'application installable dans deux projets Android Studio distincts. Dans ce cas, vous devrez toutefois suivre les étapes ci-dessous pour pouvoir publier votre application sur Google Play :
- Utilisez le même nom de package dans les deux projets Android Studio.
- 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 Gérer les versions de votre application.
Mettre à jour la version du bac à sable cible
Le fichier AndroidManifest.xml
de votre application instantanée doit être mis à jour pour cibler l'environnement de bac à sable compatible avec Google Play Instant. Pour terminer cette mise à jour, ajoutez l'attribut android:targetSandboxVersion
à l'élément <manifest>
de votre application, 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 les modules d'application activés pour une utilisation instantanée
Vous pouvez déclarer que votre app bundle est compatible avec les expériences instantanées en utilisant l'une des méthodes suivantes :
Si vous disposez d'un app bundle existant qui ne contient qu'un module de base, vous pouvez activer l'utilisation instantanée de l'app bundle comme suit :
- Ouvrez le panneau Projet en sélectionnant Vue > Fenêtres d'outil > Projet dans la barre de menu.
- 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.
- Dans la boîte de dialogue qui s'affiche, sélectionnez votre module de base dans le menu déroulant.
- 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 contenant plusieurs modules, vous pouvez créer un module de fonctionnalité permettant une utilisation instantanée. Ce processus permet également une utilisation instantanée du module de base de votre application, ce qui vous donne la possibilité de prendre en charge plusieurs points d'entrée instantanés dans votre application.
Ajouter la prise en charge de la connexion
Si votre expérience instantanée permet aux utilisateurs de se connecter, votre app bundle compatible avec les applis instantanées doit prendre en charge Smart Lock pour les mots de passe sur Android. Si vous créez un jeu Instant Play, vous devez utiliser la connexion Services de jeux Google Play à la place.
Prendre en charge l'environnement d'exécution
Pour être compatible avec le bac à sable SELinux dans lequel les expériences instantanées s'exécutent, gardez les points suivants à l'esprit lorsque vous créez votre app bundle compatible avec les applications instantanées :
- Ne partagez pas la valeur de
myUid()
, qui correspond à l'UID attribué au noyau du processus de votre application. - Si votre application cible Android 8.1 (niveau d'API 27) ou version antérieure, créez un fichier Network Security Config et définissez
cleartextTrafficPermitted
surfalse
. Les expériences instantanées ne sont pas compatibles avec le trafic HTTP. Pour les applications ciblant Android 9 ou version ultérieure, le trafic en texte clair est désactivé 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, nous vous recommandons de synchroniser régulièrement les données utilisateur avec le serveur de votre application afin de préserver la progression de l'utilisateur.
Ajouter une logique pour les workflows d'expérience instantanée
Une fois que vous avez configuré votre app bundle pour qu'il soit compatible avec les expériences instantanées, ajoutez la logique illustrée dans les sections suivantes.
Vérifier si l'application fonctionne dans l'expérience instantanée
Si la logique de votre application dépend d'interactions de l'utilisateur dans l'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 créez une version d'essai de votre application ou de votre jeu, Google Play Instant vous permet d'afficher une invite dans votre expérience instantanée, invitant les utilisateurs à installer la version complète sur leur appareil. Pour afficher cette invite, utilisez la méthode 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 application. Pour assurer une expérience utilisateur de qualité, il est important que les données de l'utilisateur soient transférées de votre expérience instantanée vers la version complète de votre application.
Si l'utilisateur utilise un appareil équipé d'Android 8.0 (niveau d'API 26) ou version ultérieure, et si votre application spécifie la targetSandboxVersion
2
, ses données seront automatiquement transférées vers la version complète de votre application. Sinon, vous devez transférer les données manuellement. Pour ce faire, utilisez l'une des API suivantes :
- Pour les utilisateurs qui exécutent des appareils équipés d'Android 8.0 (niveau d'API 26) ou version ultérieure, utilisez 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).
Compiler l'app bundle
Vous pouvez utiliser Android Studio ou l'interface de ligne de commande pour compiler votre app bundle compatible avec les applications instantanées.
Android Studio
Dans Android Studio, vous pouvez créer votre app bundle en sélectionnant Build > Build Bundle(s) / APK(s) > Build Bundle(s). Pour en savoir plus sur la compilation de votre projet, consultez Compiler votre projet.
Interface de ligne de commande
Vous pouvez également créer l'app bundle à partir de la ligne de 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 compatible avec les applications instantanées, vous pouvez tester l'expérience instantanée à partir de l'un des emplacements suivants pour vérifier la fonctionnalité :
- Installez-le sur un appareil local à l'aide d'Android Studio.
- Installez-le sur un appareil local à l'aide de l'interface de ligne de commande.
- Publiez-la sur le canal de test interne de la Google Play Console.
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 :
- Si une version de votre application est installée sur votre appareil de test, désinstallez-la.
- Dans Android Studio, parmi les options d'installation qui s'affichent dans l'onglet Général de la boîte de dialogue Configurations d'exécution/de débogage, cochez la case Déployer en tant qu'appli instantanée.
- Sélectionnez Run > Run (Exécuter > Exécuter) 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 les expériences instantanées de votre application. 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 :
- Si une version de votre application est installée sur votre appareil de test, désinstallez-la.
- Installez et exécutez votre appli instantanée sur votre appareil de test en saisissant 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 sur le canal de test interne de la Play Console.
Pour publier votre application sur le canal de test interne, procédez comme suit :
- Importez votre app bundle en suivant les étapes du guide Importer votre app bundle dans la Play Console.
- Préparez le bundle importé pour une version destinée au canal de test interne. Pour en savoir plus, consultez l'article d'aide sur la préparation et le déploiement des versions.
Connectez-vous à un compte de testeur interne sur un appareil, puis lancez votre expérience instantanée depuis l'une des surfaces suivantes :
- Le bouton Essayer de la fiche Play Store de votre application.
- Un lien depuis une bannière sur le site Web de votre application.
Publier l'app bundle sur le canal de production
Pour publier votre app bundle compatible avec les applications instantanées, procédez comme suit :
- Si vous ne l'avez pas déjà fait, signez votre app bundle avec une clé de version, puis importez-le dans la Play Console.
- Dans la Play Console, ouvrez Gestion des versions > Applications instantanées Android, puis accédez au canal de production des applications instantanées.
- Sélectionnez Mettre à jour à partir de la bibliothèque, puis sélectionnez l'app bundle comportant une expérience instantanée que vous avez importé.
Choisir où publier votre expérience instantanée
Il est possible de lancer une expérience instantanée de votre application dans un sous-ensemble des pays et régions où les utilisateurs peuvent installer votre application. Cette fonctionnalité est utile si vous souhaitez promouvoir l'expérience instantanée de votre application auprès des utilisateurs résidant dans un ensemble spécifique de pays et régions.
Ressources supplémentaires
Pour en savoir plus sur la création d'expériences instantanées et d'Android App Bundles, consultez les ressources suivantes :
- Vidéo : App bundles et applis instantanées
- Découvrez comment ajouter une expérience instantanée à un Android App Bundle dans cette session du Sommet des développeurs Android 2018.
- Vidéo : Publier des applications plus petites avec l'Android App Bundle
- Découvrez comment les app bundles vous aident à développer votre application plus rapidement et à créer des APK plus petits pour vos utilisateurs.
- Atelier de programmation : Votre premier Android App Bundle
- Guide pas à pas pour créer un Android App Bundle et y ajouter des fonctionnalités.
- Format Android App Bundle
- Découvrez comment le programme en ligne de commande
bundletool
organise un app bundle à partir du code et des ressources de votre application.