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 sur l'appareil ML Kit, envisagez de suivre 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 ne devront télécharger que les APK correspondant à la configuration de leur appareil et, surtout, ils ne téléchargeront que les bibliothèques de code natif correspondant à l'architecture de leur appareil.

Avancé: déplacer des 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é dynamique.

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 Play Store ML Kit dans le fichier build.gradle de votre APK de base.

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

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

Avancé: exclure les binaires ML Kit inutilisés

ML Kit est compatible avec les architectures 32 bits et 64 bits. Si votre application n'est compatible qu'avec 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 compilation:

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