Reduce el tamaño de los APK de tu app para Android que implementa ML Kit
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Antes de implementar en producción una app que usa un modelo en el dispositivo para el Kit de AA, sigue los consejos que se indican en esta página a fin de disminuir el tamaño de descarga de tu app.
Compila tu app como un Android App Bundle
Compila y, luego, implementa tu app como un Android App Bundle a fin de que Google Play genere automáticamente los APK para densidades de pantalla, arquitecturas de CPU y lenguajes específicos. Los usuarios solo tendrán que descargar los APK que coincidan con la configuración de sus dispositivos. Pero lo principal es que solo deberán descargar las bibliotecas de código nativo que coincidan con la arquitectura de sus dispositivos.
Avanzado: Transfiere las características opcionales del AA a módulos de funciones dinámicas
Si usas ML Kit en una función de tu app que no corresponda a su propósito principal, considera refactorizar la app para transferir esa función y sus dependencias de ML Kit a un módulo de funciones dinámicas.
Para que las funciones de ML Kit funcionen en un módulo de funciones a pedido, incluye la dependencia de la biblioteca de compatibilidad con funciones dinámicas de Play Store de ML Kit en el archivo build.gradle
de tu APK base.
dependencies {
// ...
implementation 'com.google.mlkit:playstore-dynamic-feature-support:16.0.0-beta2'
}
Si lo haces, evitarás que los usuarios deban descargar los modelos de AA de la app, que pueden ser de gran tamaño.
Avanzado: Excluye los objetos binarios no utilizados del ML Kit
El Kit de AA se compila con compatibilidad para arquitecturas de 32 y 64 bits. Por ejemplo, si tu app solo es compatible con el modo de 32 bits porque usas una biblioteca que solo proporciona objetos binarios de 32 bits, puedes excluir de tu compilación las bibliotecas del Kit de AA que no se usen, de la siguiente manera:
android {
defaultConfig {
ndk {
// Don't package arm64-v8a or x86_64
abiFilters 'armeabi-v7a', 'x86'
}
}
}
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-09-04 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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```"]]