Réduire la taille de votre appli instantanée

Google Play Instant offre des expériences natives riches en un clin d'œil sur le Web . Les utilisateurs peuvent utiliser votre application sans avoir à l'installer au préalable. d'un niveau et d'une qualité d'engagement supérieurs. Pour qu’une appli instantanée se charge aussi rapidement de la même manière qu'une page Web mobile classique, vous devez créer une page Web une appli instantanée efficace. Plus le binaire de votre appli instantanée est petit, plus il est rapide et plus l'expérience utilisateur est fluide.

Ce document transmet des bonnes pratiques pour gérer la structure de votre application et taille binaire pour une expérience instantanée fluide. Vous pouvez appliquer ces mêmes pratiques qui profiteront également à votre application installable.

Refactoriser en plusieurs modules de fonctionnalités

La plus grande amélioration de la taille binaire de votre application se produit lorsque vous refactorisez dans plusieurs modules de fonctionnalités. Commencez par une caractéristique de base de Google, puis extraire des workflows thématiques dans leurs propres modules de fonctionnalité. Attribuez une activité de démarrage et une URL unique à chaque module de fonctionnalité afin que les utilisateurs peut mener à bien le workflow du module.

Lorsque vous créez des modules de fonctionnalité, réduisez la taille du module de base possible. Portez une attention particulière aux parties de votre application qui ont besoin d'accéder à vos bibliothèques dépendantes. Si un seul module de fonctionnalité utilise une bibliothèque donnée, importez-la dans le module de fonctionnalité lui-même, et non dans le fichier de base module de fonctionnalité. Gardez à l'esprit que pour publier une appli instantanée un module de fonctionnalité en particulier, la taille totale de cette caractéristique module et celui de base doivent être inférieures à 15 Mo.

Bonnes pratiques

Lorsque vous refactorisez votre application, gardez à l'esprit les bonnes pratiques suivantes:

Utiliser le même codebase pour les deux types d'applications
Vous pouvez simplifier le processus de gestion de projets de votre application en utilisant codebase modulaire pour créer à la fois votre application installée et vos applis instantanées.
Concevoir pour plusieurs modules de fonctionnalités
Même si votre application ne comporte qu'un seul workflow et ne nécessite qu'une seule fonctionnalité il est toujours judicieux de concevoir plusieurs modules de fonctionnalités. Vous pouvez ainsi ajouter des modules existants à votre application sans affecter la taille du module de fonctionnalité d'origine.
Ne pas se concentrer sur la limite de taille du module 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 et publier une appli instantanée via le canal de test interne, qui applique une limite de 15 Mo pour la taille des modules de fonctionnalités ; Seuls les API alpha et de production appliquent la limite de 15 Mo.

Mettre à jour les ressources de l'application

Certaines applications, en particulier celles qui ont un historique de codebase plus long, contiennent ressources que les binaires de votre application n'utilisent plus. Lorsque vous cherchez des moyens de rendre les modules de votre application, tenez compte des sources courantes suivantes d'erreurs du code source.

Réduire la taille des fichiers image

Vous pouvez réduire considérablement la taille totale des drawables de votre application en utilisant la classe WebP format de fichier au lieu de PNG. Google Play Instant offre une prise en charge complète pour le WebP, y compris la transparence et la compression sans perte, afin que la qualité reste inchangée.

Si possible, supprimez toutes les exigences de rétrocompatibilité pour l'utilisation d'autres fichiers PNG images. Si vous devez utiliser des images PNG, placez-les dans le module utilisé pour pour créer et installer votre application.

Supprimer les langues inutilisées

Si votre application est disponible dans plusieurs langues, réduisez le nombre de ressources localisées que possible. Cette étape est particulièrement utile si vous utilisez un "compat" bibliothèque, comme android.support.v7.appcompat. Cette bibliothèque comprend des messages dans de nombreuses langues, dont certaines peuvent être ne sont pas prises en charge.

Pour en savoir plus, découvrez comment supprimer des mots de passe alternatifs d'assistance, en particulier langues inutilisées.

Supprimer des fichiers en trop

Il est possible que votre application n'utilise plus certaines des ressources que vous avez importées votre projet. Pour vous aider à supprimer ces ressources, Android Studio propose une vérification lint pour cette situation spécifique. Pour utiliser cet outil, procédez comme suit:

  1. Appuyez sur Ctrl+Alt+Maj+I (Cmd+Alt+Maj+I sous Mac OS).
  2. Dans la boîte de dialogue qui s'affiche, saisissez "unused resources".
  3. Sélectionnez l'option Ressources inutilisées pour démarrer l'utilisation des ressources le processus d'inspection.

S'il reste des ressources importantes dans votre application, demandez-vous s'il est possible de les décompresser de votre application et les télécharger en tant que fichiers autonomes après l'exécution commence à interagir avec votre application. Ce type de report de chargement d'image nécessite généralement de modifier le code, mais cela peut réduire considérablement de l'application en ne téléchargeant que les ressources explicitement attribuées par un utilisateur requêtes.

Supprimer les bibliothèques inutilisées

Au fur et à mesure qu'une application prend de l'ampleur, elle peut gérer un nombre surprenant de dépendances, en particulier l'un des types suivants:

  • Bibliothèques natives:bibliothèques contenant du code natif que votre l'application ne s'exécute jamais.
  • Dépendances transitives:bibliothèques sur lesquelles votre application est importée et les bibliothèques dépendent.

Android Studio dispose de plusieurs outils utiles pour identifier les éléments superflus dans le projet de votre application:

Bibliothèques externes

La vue Project (Projet) d'Android Studio inclut une section External bibliothèques (Bibliothèques externes).

Cette section contient toutes les bibliothèques utilisées par votre application, y compris les bibliothèques natives le code et toutes les dépendances transitives. Dans cette vue, recherchez les éléments inutilisés bibliothèques dont votre application n'a pas besoin.

Analyseur d'APK

Vous pouvez utiliser l'analyseur d'APK pour comparer différentes compilations, y compris des compilations d'applis instantanées.

Après avoir déterminé les bibliothèques dont votre application n'a pas besoin, excluez-les en en ajoutant à votre fichier de compilation Gradle des lignes semblables à ce qui suit:

<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 d'importation totale des fichiers consultez le guide Gradle pour les dépendances gestion.

Implémenter la livraison d'éléments dans le cloud

Si vous avez besoin de réduire encore davantage la taille, vous devrez peut-être recourir à la distribution d'éléments dans le cloud.