Zmniejsz rozmiar plików APK aplikacji ML Kit na Androida
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Zanim wdrożysz w środowisku produkcyjnym aplikację, która korzysta z modelu ML Kit na urządzeniu, zapoznaj się z poradami na tej stronie, aby zmniejszyć rozmiar pobierania aplikacji.
Tworzenie aplikacji jako pakietu Android App Bundle
Twórz i wdrażaj aplikację jako pakiet aplikacji na Androida, aby Google Play mogło automatycznie generować pliki APK dla określonych gęstości ekranu, architektur procesora i języków. Użytkownicy będą musieli pobrać tylko pliki APK, które pasują do konfiguracji ich urządzenia, a co najważniejsze, pobiorą tylko biblioteki kodu natywnego, które pasują do architektury ich urządzenia.
Zaawansowane: przenoszenie opcjonalnych funkcji ML do modułów funkcji dynamicznych
Jeśli używasz ML Kit w funkcji aplikacji, która nie jest jej głównym celem, rozważ refaktoryzację aplikacji, aby przenieść tę funkcję i jej zależności od ML Kit do modułu funkcji dynamicznych.
Aby funkcje ML Kit działały w module funkcji na żądanie, w pliku build.gradle
podstawowego pliku APK dodaj zależność biblioteki obsługi funkcji dynamicznych ML Kit w Google Play.
dependencies {
// ...
implementation 'com.google.mlkit:playstore-dynamic-feature-support:16.0.0-beta2'
}
W ten sposób uniemożliwisz użytkownikom niepotrzebne pobieranie modeli ML aplikacji, które mogą być duże.
Zaawansowane: wykluczanie nieużywanych plików binarnych ML Kit
ML Kit obsługuje zarówno architekturę 32-bitową, jak i 64-bitową. Jeśli Twoja aplikacja obsługuje tylko tryb 32-bitowy (np. dlatego, że używasz biblioteki, która udostępnia tylko pliki binarne 32-bitowe), możesz wykluczyć z kompilacji nieużywane biblioteki ML Kit:
android {
defaultConfig {
ndk {
// Don't package arm64-v8a or x86_64
abiFilters 'armeabi-v7a', 'x86'
}
}
}
O ile nie stwierdzono inaczej, treść tej strony jest objęta licencją Creative Commons – uznanie autorstwa 4.0, a fragmenty kodu są dostępne na licencji Apache 2.0. Szczegółowe informacje na ten temat zawierają zasady dotyczące witryny Google Developers. Java jest zastrzeżonym znakiem towarowym firmy Oracle i jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-09-04 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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```"]]