Riduci le dimensioni degli APK dell'app per Android ML Kit
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Prima di eseguire il deployment in produzione di un'app che utilizza un modello on-device di ML Kit,
valuta la possibilità di seguire i consigli riportati in questa pagina per ridurre le dimensioni di download della tua
app.
Crea la tua app come Android App Bundle
Crea e implementa la tua app come Android App Bundle in modo che Google Play possa generare automaticamente APK per densità di schermo, architetture CPU e lingue specifiche. Gli utenti dovranno scaricare solo gli APK che
corrispondono alla configurazione del dispositivo e, soprattutto, solo le
librerie di codice nativo che corrispondono all'architettura del dispositivo.
Avanzato: sposta le funzionalità di ML facoltative nei moduli di funzionalità dinamiche
Se utilizzi ML Kit in una funzionalità della tua app che non è il suo scopo principale,
valuta la possibilità di eseguire il refactoring dell'app per spostare la funzionalità e le relative dipendenze di ML Kit
in un modulo di funzionalità dinamiche.
Affinché le funzionalità di ML Kit funzionino in un modulo di funzionalità on demand, nel file build.gradle
dell'APK di base,
includi la dipendenza della libreria di supporto delle funzionalità dinamiche di ML Kit Play Store.
dependencies {
// ...
implementation 'com.google.mlkit:playstore-dynamic-feature-support:16.0.0-beta2'
}
In questo modo, impedisci agli utenti di scaricare inutilmente i modelli ML della tua app, che possono essere
di grandi dimensioni.
Avanzato: escludi i file binari di ML Kit inutilizzati
ML Kit è stato creato con il supporto per le architetture a 32 bit e a 64 bit. Se
la tua app supporta solo la modalità a 32 bit, ad esempio perché utilizzi una libreria
che fornisce solo file binari a 32 bit, puoi escludere le librerie ML Kit
non utilizzate dalla build:
android {
defaultConfig {
ndk {
// Don't package arm64-v8a or x86_64
abiFilters 'armeabi-v7a', 'x86'
}
}
}
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-09-04 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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```"]]