מודולים של תכונות מאפשרים להפריד בין תכונות ומשאבים מסוימים מהמודול הבסיסי של האפליקציה ולכלול אותם ב-App Bundle. אפשר ולאחר מכן התאמה אישית של אפשרויות המשלוח כדי לקבוע מתי ואיך מכשירים שפועלת בהם גרסת Android 5.0 (רמת API 21) ומעלה מורידים את התכונות של האפליקציה.
חשוב לזכור שמודולריזציה מהסוג הזה דורשת מאמץ נוסף, ולפעמים הוא לארגן מחדש את הקוד הקיים של האפליקציה, לכן חשוב לשקול היטב התכונות של האפליקציה יפיקו את התועלת הרבה ביותר אם הן יהיו זמינות למשתמשים על פי דרישה.
אם ברצונך לשנות בהדרגה את התכונות באפליקציה עם הזמן, ללא שינוי התנהגות האפליקציה או התאמה אישית של אפשרויות מתקדמות להצגת מודעות, לעשות זאת באמצעות יצירה של מודולים של תכונות שמוגדרים לזמן ההתקנה משלוח. כלומר, אפשר מודול של תכונה כמודול של תכונה, אבל להפעיל אפשרויות מתקדמות כדי שהתכונה תהיה זמינה כשהמשתמש יתקין את אפליקציה.
בנוסף, יש אפשרות להסיר מודולים של תכונות שמוגדרים למסירה בזמן ההתקנה אם הם לא נחוצים יותר. לשם כך, צריך להגדיר אותם כפריטים נשלפים.
בקטע הזה מוסבר איך ליצור מודול של תכונה לזמן ההתקנה משלוח. לפני שתתחילו, ודאו שאתם באמצעות Android Studio 3.5 ואילך ופלאגין של Android Gradle 3.5.0 ומעלה.
הגדרת מודול חדש למסירה בזמן ההתקנה
הדרך הקלה ביותר ליצור מודול חדש של תכונות היא באמצעות Android Studio 3.5 ואילך. מכיוון שלמודולים של תכונות יש או תלות מובנית במודול האפליקציה הבסיסית, אפשר להוסיף אותן רק פרויקטים של אפליקציות.
כדי להוסיף מודול של תכונה לפרויקט האפליקציה באמצעות Android Studio: כך עושים את זה:
- אם עדיין לא עשיתם זאת, עליכם לפתוח את פרויקט האפליקציה בסביבת הפיתוח המשולבת (IDE).
- בוחרים באפשרות קובץ > חדש > מודול חדש מסרגל התפריטים.
- בתיבת הדו-שיח Create New Module בוחרים מודול תכונות דינמיות ולוחצים על הבא.
- בקטע הגדרת המודול החדש, מבצעים את הפעולות הבאות:
הבאים:
- בוחרים את Base application מודול לפרויקט האפליקציה מתוך בתפריט הנפתח.
- מציינים שם מודול. סביבת הפיתוח המשולבת משתמשת בשם הזה כדי לזהות
בתור פרויקט משנה של Gradle
קובץ הגדרות Gradle. אחרי ש
לבניית ה-App Bundle שלך, Gradle משתמשת ברכיב האחרון של פרויקט המשנה
כדי להחדיר את המאפיין
<manifest split>
בתוך המניפסט של מודול התכונה. - מציינים את שם החבילה של המודול. כברירת מחדל, Android Studio מציע שם חבילה שמשלב את שם חבילת הבסיס של את המודול הבסיסי ואת שם המודול שציינתם בשלב הקודם.
- בוחרים את רמת ה-API המינימלית שבה המודול יתמוך. הערך הזה צריך להיות זהה לערך של מודול הבסיס.
- לוחצים על הבא.
בקטע אפשרויות להורדת מודול, מבצעים את הפעולות הבאות:
מציינים את כותרת המודול באמצעות 50 תווים לכל היותר. בסיס האפליקציה המודול חייב לכלול את כותרת המודול string resource, יכולים לתרגם. כשיוצרים את המודול באמצעות Android Studio, סביבת הפיתוח המשולבת (IDE) מוסיף בשבילך את משאב המחרוזת למודול הבסיסי ומזינה את במניפסט של מודול התכונה:
<dist:module ... dist:title="@string/feature_title"> </dist:module>
בתפריט הנפתח, בקטע הכללה של זמן ההתקנה, בוחרים באפשרות הכללה בזמן ההתקנה. מערכת Android Studio מחדירה את הרכיבים הבאים אל המניפסט של המודול שישקף את הבחירה שלך:
<dist:module ... > <dist:delivery> <dist:install-time /> </dist:delivery> </dist:module>
אם אתם רוצים ללמוד איך יוצרים מודול של תכונות, שאפשר להוריד אחרי התקנת האפליקציה, לקרוא להגדיר מסירה על פי דרישה.
אם רוצים שהמודול הזה יהיה זמין, מסמנים את התיבה לצד Fusing למכשירים שמותקנת בהם גרסת Android 4.4 (רמת API 20) ומטה ומופיעים חבילות APK מרובות. כלומר אפשר להשמיט אותה ממכשירים שלא תומכים הורדה והתקנה של חבילות APK מפוצלות. מערכת Android Studio מחדירה את במניפסט של המודול כדי לשקף את הבחירה שלכם:
<dist:module ...> <dist:fusing dist:include="true | false" /> </dist:module>
לוחצים על סיום.
כשיצירת המודול מ-Android Studio, בודקים את התוכן שלו בחלונית Project (בוחרים באפשרות View > Tool Windows > Project (תצוגה > כלי Windows > פרויקט) מסרגל התפריטים). קוד ברירת המחדל, המשאבים והארגון צריכים להיות דומים לאלה של מודול האפליקציה הרגיל.
הגדרת מודול בזמן ההתקנה כניתן להסרה
כדאי ליצור מודולים של תכונות למסירה בזמן ההתקנה, שניתן להסיר אותן בשלב מאוחר יותר אם לא יהיה צורך בכך. לדוגמה, כדי להקטין את הגודל המותקן של של האפליקציה, תוכלו לשנות את התוכן שנדרש להדרכה או לקליטת שותפים. ולאחר מכן להסיר את מודול התכונה באמצעות Play Core API אחרי שהמשתמש מוגדר להשתמש באפליקציה.
כברירת מחדל, לא ניתן להסיר מודולים בזמן ההתקנה. כדי לסמן מודול כניתן להסרה ולאפשר את הסרתו, מוסיפים את התג removable
ומגדירים את הערך שלו ל-true
:
<dist:module ... >
<dist:delivery>
<dist:install-time>
<dist:removable dist:value="true"/>
</dist:install-time>
</dist:delivery>
</dist:module>