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, 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 langages spécifiques. Les utilisateurs ne devront télécharger que les APK qui correspondent à la configuration de leur appareil et, surtout, ne téléchargeront que les 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 cette fonctionnalité 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 fonctionnent dans un module de fonctionnalité à la demande, incluez dans le fichier build.gradle de votre APK de base 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, qui peuvent être volumineux.

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 (parce que vous utilisez une bibliothèque qui ne fournit que des binaires 32 bits, par exemple), 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'
      }
  }
}