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

Avant de déployer en production une application utilisant un modèle ML Kit sur l'appareil, nous vous conseillons de suivre les conseils figurant sur 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 à 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 qui correspondent à l'architecture de leur appareil.

Niveau avancé: déplacer des fonctionnalités de 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 de ML Kit puissent fonctionner dans un module de fonctionnalités à la demande, incluez la dépendance de la bibliothèque Support des fonctionnalités dynamiques du Play Store de ML Kit dans le fichier build.gradle de l'APK de base.

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

Ainsi, vous empêchez les 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, si 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'
      }
  }
}