מידע על קובצי Android App Bundle

Android App Bundle הוא פורמט פרסום שכולל את כל המשאבים והקוד המקודד של האפליקציה, ומעביר את היצירה והחתימה של ה-APK ל-Google Play.

Google Play משתמש בקובץ ה-App Bundle כדי ליצור ולספק חבילות APK שעברו אופטימיזציה לכל תצורת מכשיר, כך שרק הקוד והמשאבים הנדרשים למכשיר ספציפי ייורדו כדי להפעיל את האפליקציה. כבר לא צריך ליצור, לחתום ולנהל כמה חבילות APK כדי לבצע אופטימיזציה לתמיכה במכשירים שונים, והמשתמשים מקבלים הורדות קטנות יותר שעברו אופטימיזציה.

ברוב פרויקטי האפליקציות לא יהיה צורך בהרבה מאמץ כדי ליצור חבילות אפליקציות שתומכות בהצגת חבילות APK שעברו אופטימיזציה. אם כבר מארגנים את הקוד והמשאבים של האפליקציה בהתאם למוסכמות המקובלות, יוצרים חבילות Android App Bundle חתומות באמצעות Android Studio או באמצעות שורת הפקודה, ומעלים אותן ל-Google Play, היתרון של הצגת חבילות APK שעברו אופטימיזציה יהפוך לאוטומטי.

כשמשתמשים בפורמט של חבילת האפליקציות כדי לפרסם את האפליקציה, אפשר גם להשתמש ב-Play Feature Delivery, שמאפשר להוסיף מודולים של תכונות לפרויקט האפליקציה. המודולים האלה מכילים תכונות ומשאבים שכלולים באפליקציה רק על סמך תנאים שתציינו, או שיהיו זמינים להורדה מאוחר יותר בסביבת זמן הריצה באמצעות ספריית הליבה של Google Play.

מפתחי משחקים שמפרסמים את האפליקציות שלהם בחבילות אפליקציות יכולים להשתמש ב-Play Asset Delivery: הפתרון של Google Play להעברת כמויות גדולות של נכסי משחקים, שמציע למפתחים שיטות העברה גמישות וביצועים גבוהים.

בסרטון הבא מוסבר למה כדאי לפרסם את האפליקציה באמצעות קובצי Android App Bundle.

הגבלת גודל הורדה דחוסה

פרסום באמצעות Android App Bundles עוזר למשתמשים להתקין את האפליקציה באמצעות הורדות קטנות ככל האפשר, ומגדיל את גודל ההורדה הדחוס. כלומר, כשמשתמש מוריד את האפליקציה, הגודל הכולל של חבילות ה-APK הדחוסות הנדרשות להתקנה שלה (לדוגמה, קובץ ה-APK הבסיסי וחבילות ה-APK של ההגדרות) לא יכול לחרוג מ-4GB. כל הורדה שתתבצע לאחר מכן, כמו הורדה של מודול תכונה (וחבילות ה-APK של ההגדרות שלו) על פי דרישה, חייבת גם לעמוד במגבלה הזו לגבי גודל ההורדה הדחוסה. חבילות נכסים לא נכללות במגבלת הגודל הזו, אבל הן כפופות למגבלות גודל אחרות.

אם מערכת Play Console תזהה שהאפליקציה או התכונות שלה על פי דרישה גדולות מהמגבלות המקסימליות לגודלם, תופיע הודעת שגיאה.

חשוב לזכור שקובצי Android App Bundle לא תומכים בקובצי הרחבה של APK‏ (*.obb). לכן, אם אתם נתקלים בשגיאה הזו כשאתם מפרסמים את חבילת האפליקציות, תוכלו להיעזר באחד מהמקורות הבאים כדי לצמצם את גודל ההורדה של חבילות ה-APK הדחוסות:

  • חשוב להפעיל את כל חבילות ה-APK של התצורה על ידי הגדרת enableSplit = true לכל סוג של חבילת APK של תצורה. כך המשתמשים מורידים רק את הקוד והמשאבים הנדרשים להפעלת האפליקציה במכשיר שלהם.
  • חשוב לצמצם את האפליקציה על ידי הסרת קוד ומשאבים שלא נמצאים בשימוש.
  • כדאי לפעול לפי השיטות המומלצות כדי להקטין עוד יותר את נפח האפליקציה.
  • מומלץ להמיר תכונות שרק חלק מהמשתמשים משתמשים בהן למודולים של תכונות, שהאפליקציה תוכל להוריד מאוחר יותר, על פי דרישה. חשוב לזכור שיכול להיות שתצטרכו לבצע קצת רפאקציה של האפליקציה, לכן חשוב לנסות קודם את ההצעות האחרות שמפורטות כאן.

שיקולים נוספים

הבעיות הבאות ידועות כשמפתחים או מציגים את האפליקציה באמצעות חבילות App Bundle ל-Android. אם נתקלת בבעיות שלא מתוארות כאן, אפשר לדווח על באג.

  • התקנות חלקיות של אפליקציות שהותקנו ממקור לא ידוע – כלומר אפליקציות שלא הותקנו באמצעות חנות Google Play וחסרים להן קובצי APK מחולקים נדרשים אחד או יותר – נכשלות בכל המכשירים המאושרים על ידי Google ובמכשירים עם Android מגרסה 10 (רמת API ‏29) ואילך. כשמורידים את האפליקציה דרך חנות Google Play, Google מוודאת שכל הרכיבים הנדרשים של האפליקציה מותקנים.
  • אם אתם משתמשים בכלים שמבצעים שינויים דינמיים בטבלאות המשאבים, יכול להיות שחבילות ה-APK שנוצרות מחבילות האפליקציות יפעלו באופן בלתי צפוי. לכן, כשמפתחים חבילת אפליקציות, מומלץ להשבית כלים כאלה.

  • אפשר להגדיר מאפיינים בהגדרות ה-build של מודול התכונה, שיהיו בסתירה למאפיינים של המודולים הבסיסיים (או מודולים אחרים). לדוגמה, אפשר להגדיר את buildTypes.release.debuggable = true במודול הבסיס ולהגדיר אותו כ-false במודול התכונות. קונפליקטים כאלה עלולים לגרום לבעיות בזמן ה-build ובזמן הריצה. חשוב לזכור שמודולים של תכונות יורשים כברירת מחדל חלק מתצורות ה-build מהמודול הבסיסי. לכן, חשוב להבין אילו הגדרות צריך לשמור ואילו להוציא מהגדרת ה-build של מודול התכונה.

מקורות מידע נוספים

מידע נוסף על חבילות אפליקציות ל-Android זמין במשאבים הבאים.

פוסטים בבלוג

סרטונים