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.
Google Play Instant propose des expériences natives enrichissantes via un simple lien Web. Les utilisateurs peuvent accéder à votre application sans avoir à l'installer au préalable, ce qui renforce et améliore leur niveau d'engagement. Toutefois, pour qu'une appli instantanée se charge aussi rapidement qu'une page Web mobile classique, vous devez créer une appli instantanée efficace et bien structurée. Plus le binaire de votre appli instantanée est petit, plus elle se charge rapidement et plus l'expérience utilisateur est fluide.
Ce document présente les bonnes pratiques pour gérer la structure et la taille du fichier binaire de votre application afin d'offrir une expérience fluide avec l'application instantanée. Vous pouvez appliquer ces mêmes pratiques pour améliorer votre application installable.
Refactoriser en plusieurs modules de fonctionnalité
L'amélioration la plus importante de la taille du fichier binaire de votre application se produit lorsque vous la refactorisez en plusieurs modules de fonctionnalités. Commencez par un module de fonctionnalité de base, puis extrayez les workflows thématiques dans leurs propres modules de fonctionnalité. Attribuez une activité de départ et une URL unique à chaque module de fonctionnalité afin que les utilisateurs puissent effectuer le workflow du module avec succès.
Lorsque vous créez des modules de fonctionnalités, veillez à ce que le module de fonctionnalités de base soit aussi petit que possible. Portez une attention particulière aux parties de votre application qui nécessitent un accès à vos bibliothèques dépendantes. Si un seul module de fonctionnalité utilise une bibliothèque donnée, importez cette bibliothèque dans le module de fonctionnalité lui-même, et non dans le module de fonctionnalité de base. N'oubliez pas que, pour publier une application instantanée pour un module de fonctionnalité particulier, la taille totale de ce module de fonctionnalité et du module de fonctionnalité de base doit être inférieure à 15 Mo.
Bonnes pratiques
Lorsque vous refactorisez votre application, gardez à l'esprit les bonnes pratiques suivantes :
- Utiliser la même codebase pour les deux types d'applications
- Vous pouvez simplifier le processus de gestion de projet de votre application en utilisant la même codebase modulaire pour créer à la fois votre application installée et vos applications instantanées.
- Concevoir une application pour plusieurs modules de fonctionnalités
- Même si votre application ne comporte qu'un seul workflow et ne nécessite qu'un seul module de fonctionnalité pour le moment, il est tout de même judicieux de concevoir votre application pour plusieurs modules de fonctionnalité. Vous pouvez ainsi ajouter des modules existants à votre application sans affecter la taille du module de fonctionnalité d'origine.
- Ne vous concentrez pas sur la limite de taille des modules de fonctionnalité au début Les limites de taille des modules de fonctionnalités
- ne s'appliquent pas aux binaires créés localement. Vous pouvez également publier une appli instantanée sur le canal de test interne, qui applique une limite de 15 Mo à la taille des modules de fonctionnalités. Seuls les canaux alpha et production appliquent la limite de 15 Mo.
Mettre à jour les ressources de l'application
Certaines applications, en particulier celles dont l'historique de code est plus long, contiennent des ressources que les binaires de votre application n'utilisent plus. Lorsque vous cherchez des moyens de réduire la taille des modules de votre application, tenez compte des sources courantes de code inutile suivantes.
Réduire la taille des fichiers image
Vous pouvez réduire considérablement la taille totale des drawables de votre application en utilisant le format de fichier WebP au lieu de PNG. Google Play Instantané est entièrement compatible avec WebP, y compris la transparence et la compression sans perte, ce qui permet de conserver la qualité des images.
Si possible, supprimez toutes les exigences de rétrocompatibilité pour l'utilisation d'autres images PNG. Si vous devez utiliser des images PNG, placez-les dans le module utilisé pour compiler et installer votre application.
Supprimer les langues inutilisées
Si votre application est compatible avec plusieurs langues, réduisez autant que possible les ressources localisées. Cette étape est particulièrement utile si vous utilisez une bibliothèque "app compat", telle que android.support.v7.appcompat
.
Cette bibliothèque inclut des messages dans de nombreuses langues, dont certaines ne sont peut-être pas prises en charge par votre application.
Pour en savoir plus, découvrez comment supprimer les autres ressources non utilisées, en particulier les langues non utilisées.
Supprimer les fichiers inutiles
Il est possible que votre application n'utilise plus certaines des ressources que vous avez importées dans votre projet. Pour vous aider à supprimer ces ressources, Android Studio propose un contrôle Lint pour cette situation spécifique. Pour utiliser l'outil, procédez comme suit :
- Appuyez sur Ctrl+Alt+Maj+I (Commande+Alt+Maj+I sur Mac OS).
- Dans la boîte de dialogue qui s'affiche, saisissez
"unused resources"
. - Sélectionnez l'option Ressources inutilisées pour lancer le processus d'inspection de l'utilisation des ressources.
S'il reste des ressources volumineuses dans votre application, demandez-vous s'il est possible de les décompresser et de les télécharger en tant que fichiers autonomes une fois que l'utilisateur commence à interagir avec votre application. Ce type de report du chargement d'images nécessite généralement une modification du code, mais il peut réduire considérablement la taille du fichier de votre application instantanée en téléchargeant uniquement les ressources qu'un utilisateur demande explicitement.
Supprimer les bibliothèques inutilisées
À mesure qu'une application se développe, elle peut prendre un nombre surprenant de dépendances, en particulier l'un des types suivants :
- Bibliothèques natives : bibliothèques contenant du code natif que votre application instantanée n'exécute jamais.
- Dépendances transitives : bibliothèques dont dépendent les bibliothèques importées par votre application.
Android Studio propose plusieurs outils utiles pour identifier les dépendances superflues dans le projet de votre application :
- Bibliothèques externes
La vue Projet d'Android Studio inclut une section Bibliothèques externes.
Cette section contient toutes les bibliothèques utilisées par votre application, y compris le code natif et toutes les dépendances transitives. Dans cette vue, recherchez les bibliothèques inutilisées ou en double dont votre application n'a pas besoin.
- Analyseur d'APK
Vous pouvez utiliser l'outil Analyseur d'APK pour comparer différentes versions, y compris les versions d'applications instantanées.
Une fois que vous avez déterminé les bibliothèques dont votre application n'a pas besoin, excluez-les en ajoutant des lignes semblables à celles ci-dessous à votre fichier de compilation Gradle :
<feature_module>/build.gradle
Groovy
dependencies { implementation('some-important-but-large-library') { exclude group: 'com.example.imgtools', module: 'native' } }
Kotlin
dependencies { implementation('some-important-but-large-library') { exclude(group = "com.example.imgtools", module = "native") } }
Pour savoir comment réduire la taille totale d'importation des dépendances de votre application, consultez le guide Gradle sur la gestion des dépendances.
Implémenter la livraison d'éléments dans le cloud
Si vous avez besoin de réduire davantage la taille, vous devrez peut-être vous appuyer sur la diffusion d'assets dans le cloud.