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:
ACCESS_COARSE_LOCATION
ACCESS_FINE_LOCATION
ACCESS_NETWORK_STATE
BILLING
: obsolète depuis le Google Play Bibliothèque Billing 1.0CAMERA
INSTANT_APP_FOREGROUND_SERVICE
– Uniquement sur Android 8.0 (niveau d'API 26) ou version ultérieure.INTERNET
READ_PHONE_NUMBERS
– Uniquement sur Android 8.0 (niveau d'API 26) ou version ultérieure.RECORD_AUDIO
VIBRATE
WAKE_LOCK
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
: utilisezACCESS_NETWORK_STATE
, qui devrait fournir des informations semblables à celles deACCESS_WIFI_STATE
.BILLING
: il s'agit d'une autorisation obsolète. Utilisez les 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 aux ressources externes stockage ; utiliser la mémoire de stockage interne à la place.com.google.android.c2dm.permission.RECEIVE
etpermission.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:
- utiliser des services d'arrière-plan ;
- Envoyer des notifications lorsque vous courez dans en arrière-plan.
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
danstrue
: 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
ouACTION_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:
- 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 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:
- 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 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:
- Installez l'application sur un appareil local à l'aide d'Android Studio.
- Installer sur un appareil local à l'aide de la ligne de commande de commande.
- Publiez votre application dans le canal de test interne sur le 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 : procédez comme suit:
- Si une version installée de votre application est installée sur votre appareil de test, désinstallez-la
- 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.
- 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:
- Si une version installée de votre application est installée sur votre appareil de test, désinstallez-la
- 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:
- 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.
- 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.
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:
- Si vous ne l'avez pas déjà fait, signez votre app bundle avec une release. et importez l'app bundle Play Console.
- 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.
- 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.