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

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

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

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

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

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

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

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

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

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

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

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

דברים נוספים שכדאי לזכור

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

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

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

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

מידע נוסף על קובצי Android App Bundle זמין במקורות המידע הבאים.

פוסטים בבלוג

סרטונים