Réduire la taille des APK de votre application Android ML Kit
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
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 correspondant à la configuration de leur appareil. Plus important encore, ils ne téléchargeront que les bibliothèques de code natif correspondant à l'architecture de leur appareil.
Avancé : déplacer les 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 ML Kit fonctionnent dans un module de fonctionnalité à la demande, incluez la dépendance de la bibliothèque de compatibilité des fonctionnalités dynamiques Play Store dans le fichier build.gradle
de votre fichier 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 de ML de votre application, qui peuvent être volumineux.
Avancé : exclure les binaires ML Kit inutilisé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 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'
}
}
}
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[null,null,["Dernière mise à jour le 2025/09/04 (UTC)."],[[["\u003cp\u003eReduce your app's download size by building it as an Android App Bundle, enabling Google Play to deliver optimized APKs to users based on their device configurations.\u003c/p\u003e\n"],["\u003cp\u003eFor non-core ML features, leverage dynamic feature modules to deliver them on demand, minimizing the initial download size by excluding optional ML models.\u003c/p\u003e\n"],["\u003cp\u003eIf your app only supports 32-bit mode, exclude unused 64-bit ML Kit libraries to further reduce the app's size.\u003c/p\u003e\n"],["\u003cp\u003eTo enable ML Kit features in on-demand modules, include the \u003ccode\u003eplaystore-dynamic-feature-support\u003c/code\u003e library in your base APK's dependencies.\u003c/p\u003e\n"]]],[],null,["Before you deploy to production an app that uses an ML Kit on-device model,\nconsider following the advice on this page to reduce the download size of your\napp.\n\nBuild your app as an Android App Bundle\n\nBuild and deploy your app as an [Android App Bundle](//developer.android.com/guide/app-bundle/) so that Google\nPlay can automatically generate APKs for specific screen densities, CPU\narchitectures, and languages. Users will only have to download the APKs that\nmatch their device configuration, and most importantly, users only download the\nnative code libraries that match their device architecture.\n\nAdvanced: Move optional ML features to dynamic feature modules\n\nIf you use ML Kit in a feature of your app that isn't its primary purpose,\nconsider refactoring your app to move that feature and its ML Kit\ndependencies to a [dynamic feature module](//developer.android.com/studio/projects/dynamic-delivery#dynamic_feature_modules).\n\nIn order for ML Kit features to work in an on-demand feature module, in your base apk's `build.gradle` file,\ninclude the ML Kit playstore dynamic feature support library dependency. \n\n```carbon\ndependencies {\n // ...\n implementation 'com.google.mlkit:playstore-dynamic-feature-support:16.0.0-beta2'\n}\n```\n\nBy doing so, you prevent users from unnecessarily downloading your app's ML models, which can be\nlarge.\n\nAdvanced: Exclude unused ML Kit binaries\n\nML Kit is built with support for both 32-bit and 64-bit architectures. If\nyour app only supports 32-bit mode---for example, because you use a library\nthat only provides 32-bit binaries---you can exclude the unused ML Kit\nlibraries from your build: \n\n```carbon\nandroid {\n defaultConfig {\n ndk {\n // Don't package arm64-v8a or x86_64\n abiFilters 'armeabi-v7a', 'x86'\n }\n }\n}\n```"]]