הקטנת גודל ה-APKs של אפליקציית ML Kit ל-Android
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
לפני שמפרסמים בייצור אפליקציה שמשתמשת במודל של ML Kit במכשיר, כדאי לפעול לפי ההמלצות בדף הזה כדי להקטין את גודל ההורדה של האפליקציה.
איך יוצרים את האפליקציה כקובץ Android App Bundle
כדאי לבנות ולפרוס את האפליקציה כקובץ Android App Bundle כדי שמערכת Google Play תוכל ליצור באופן אוטומטי קובצי APK לדחיסויות מסך, לארכיטקטורות של מעבדים ולשפות ספציפיות. המשתמשים יצטרכו להוריד רק את קובצי ה-APK שתואמים להגדרת המכשיר שלהם, וחשוב מכך, הם יורידו רק את ספריות הקוד המקורי שתואמות לארכיטקטורת המכשיר שלהם.
מתקדם: העברת תכונות אופציונליות של ML למודולים של תכונות דינמיות
אם אתם משתמשים ב-ML Kit בתכונה של האפליקציה שלא משמשת למטרה העיקרית שלה, כדאי לשקול לבצע רפקטורינג באפליקציה כדי להעביר את התכונה הזו ואת התלות שלה ב-ML Kit אל מודול תכונות דינמי.
כדי שתכונות ML Kit יפעלו במודול תכונות לפי דרישה, צריך לכלול את התלות בספריית התמיכה בתכונות דינמיות של ML Kit playstore בקובץ build.gradle
של קובץ ה-APK הבסיסי.
dependencies {
// ...
implementation 'com.google.mlkit:playstore-dynamic-feature-support:16.0.0-beta2'
}
כך תמנעו ממשתמשים להוריד שלא לצורך את מודלי ה-ML של האפליקציה, שיכולים להיות גדולים.
מתקדם: החרגת קבצים בינאריים של ML Kit שלא נעשה בהם שימוש
ML Kit מבוסס על תמיכה בארכיטקטורות של 32 ביט ו-64 ביט. אם האפליקציה תומכת רק במצב 32 ביט – למשל, כי אתם משתמשים בספרייה שמספקת רק קבצים בינאריים של 32 ביט – אתם יכולים להחריג את הספריות של ML Kit שלא נעשה בהן שימוש מה-build:
android {
defaultConfig {
ndk {
// Don't package arm64-v8a or x86_64
abiFilters 'armeabi-v7a', 'x86'
}
}
}
אלא אם צוין אחרת, התוכן של דף זה הוא ברישיון Creative Commons Attribution 4.0 ודוגמאות הקוד הן ברישיון Apache 2.0. לפרטים, ניתן לעיין במדיניות האתר Google Developers. Java הוא סימן מסחרי רשום של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-09-03 (שעון UTC).
[null,null,["עדכון אחרון: 2025-09-03 (שעון 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```"]]