Größe der ML Kit-APKs für Android-Apps reduzieren
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Bevor Sie eine App, die ein On-Device-Modell von ML Kit verwendet, in der Produktion bereitstellen, sollten Sie die Empfehlungen auf dieser Seite berücksichtigen, um die Downloadgröße Ihrer App zu reduzieren.
App als Android App Bundle erstellen
Erstellen und stellen Sie Ihre App als Android App Bundle bereit, damit Google Play automatisch APKs für bestimmte Bildschirmdichten, CPU-Architekturen und Sprachen generieren kann. Nutzer müssen nur die APKs herunterladen, die ihrer Gerätekonfiguration entsprechen. Vor allem aber laden sie nur die Bibliotheken mit nativem Code herunter, die ihrer Gerätearchitektur entsprechen.
Erweitert: Optionale ML-Funktionen in dynamische Funktionsmodule verschieben
Wenn Sie ML Kit in einer Funktion Ihrer App verwenden, die nicht der primäre Zweck der App ist, sollten Sie Ihre App umgestalten, um diese Funktion und ihre ML Kit-Abhängigkeiten in ein Modul für dynamische Funktionen zu verschieben.
Damit ML Kit-Funktionen in einem On-Demand-Funktionsmodul funktionieren, müssen Sie in der build.gradle
-Datei des Basis-APK die Abhängigkeit der ML Kit-Unterstützungsbibliothek für dynamische Funktionen von Play Store einfügen.
dependencies {
// ...
implementation 'com.google.mlkit:playstore-dynamic-feature-support:16.0.0-beta2'
}
So verhindern Sie, dass Nutzer die ML-Modelle Ihrer App, die sehr groß sein können, unnötig herunterladen.
Erweitert: Ungenutzte ML Kit-Binärdateien ausschließen
ML Kit unterstützt sowohl 32-Bit- als auch 64-Bit-Architekturen. Wenn Ihre App nur den 32‑Bit-Modus unterstützt, z. B. weil Sie eine Bibliothek verwenden, die nur 32‑Bit-Binärdateien bereitstellt, können Sie die nicht verwendeten ML Kit-Bibliotheken aus Ihrem Build ausschließen:
android {
defaultConfig {
ndk {
// Don't package arm64-v8a or x86_64
abiFilters 'armeabi-v7a', 'x86'
}
}
}
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-09-04 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 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```"]]