Réduire la taille des APK de votre application Android ML Kit

Avant de déployer en production une application qui utilise un modèle ML Kit sur l'appareil, suivez les conseils de cette page pour réduire la taille de téléchargement de votre application.

Créer votre application en tant qu'Android App Bundle

Créez et déployez votre application en tant qu'Android App Bundle afin que Google Play puisse générer automatiquement des APK pour des densités d'écran, des architectures de processeur et des langues spécifiques. Les utilisateurs n'auront qu'à télécharger les APK qui correspondent à la configuration de leur appareil. Plus important encore, ils ne téléchargeront que les bibliothèques de code natif qui correspondent à l'architecture de leur appareil.

Avancé : Déplacer les fonctionnalités ML facultatives vers des modules de fonctionnalités dynamiques

Si vous utilisez ML Kit dans une fonctionnalité de votre application qui n'est pas son objectif principal, envisagez de refactoriser votre application pour déplacer cette fonctionnalité et ses dépendances ML Kit vers un module de fonctionnalités dynamiques.

Pour que les fonctionnalités ML Kit fonctionnent dans un module de fonctionnalités à la demande, incluez la dépendance de la bibliothèque de compatibilité des fonctionnalités dynamiques ML Kit Play Store dans le fichier build.gradle de votre APK de base.

dependencies {
    // ...
    implementation 'com.google.mlkit:playstore-dynamic-feature-support:16.0.0-beta2'
}

Vous empêchez ainsi les utilisateurs de télécharger inutilement les modèles ML de votre application, qui peuvent être volumineux.

Avancé : Exclure les binaires ML Kit inutilisés

ML Kit est conçu pour prendre en charge les architectures 32 bits et 64 bits. Si votre application ne prend en charge que le mode 32 bits (par exemple, parce que vous utilisez une bibliothèque qui ne fournit que des binaires 32 bits), vous pouvez exclure les bibliothèques ML Kit inutilisées de votre build :

android {
  defaultConfig {
      ndk {
          // Don't package arm64-v8a or x86_64
          abiFilters 'armeabi-v7a', 'x86'
      }
  }
}