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 l'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 peut générer automatiquement des APK pour des densités d'écran, des processeurs spécifiques d'architectures et de langages. Les utilisateurs n'auront à télécharger que les APK correspondent à la configuration de leur appareil et surtout, les utilisateurs ne téléchargent des bibliothèques de code natives correspondant à l'architecture de leur appareil.

Avancé: Déplacer les caractéristiques de ML facultatives vers des modules de caractéristiques 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 son ML Kit. les dépendances à un module de fonctionnalités dynamiques.

Pour que les fonctionnalités de ML Kit fonctionnent dans un module à la demande, dans le fichier build.gradle de votre APK de base, inclure la dépendance de la bibliothèque Support des fonctionnalités dynamiques du Playstore ML Kit.

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, de grande taille.

Avancé: Exclure les binaires ML Kit non utilisés

ML Kit est conçu pour être 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 le ML Kit inutilisé de votre build:

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