מודולים של תכונות מאפשרים להפריד תכונות ומשאבים מסוימים מהמודול הבסיסי של האפליקציה ולכלול אותם ב-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, בוחרים באפשרות Dynamic Feature Module ולוחצים על Next.
- בקטע Configure your new module, מבצעים את הפעולות הבאות:
- בתפריט הנפתח, בוחרים את Base application module של פרויקט האפליקציה.
- מציינים שם מודול. ה-IDE משתמש בשם הזה כדי לזהות את המודול כפרויקט משנה של Gradle בקובץ ההגדרות של Gradle. כשיוצרים את ה-App Bundle, Gradle משתמש ברכיב האחרון של שם פרויקט המשנה כדי להוסיף את המאפיין
<manifest split>למניפסט של מודול התכונות. - מציינים את שם החבילה של המודול. כברירת מחדל, Android Studio מציע שם חבילה שמשלב את שם חבילת הבסיס של מודול הבסיס ואת שם המודול שציינתם בשלב הקודם.
- בוחרים את רמת ה-API המינימלית שהמודול צריך לתמוך בה. הערך הזה צריך להיות זהה לערך של מודול הבסיס.
- לוחצים על הבא.
בקטע Module Download Options, מבצעים את הפעולות הבאות:
מציינים את שם המודול (עד 50 תווים). המודול הבסיסי של האפליקציה צריך לכלול את שם המודול כמשאב מחרוזת, שאותו אפשר לתרגם. כשיוצרים את המודול באמצעות Android Studio, סביבת הפיתוח המשולבת (IDE) מוסיפה את משאב המחרוזת למודול הבסיס ומוסיפה את הרשומה הבאה למניפסט של המודול של התכונות:
<dist:module ... dist:title="@string/feature_title"> </dist:module>הערה: אם מפעילים כיווץ מקורות מידע, למשל בגרסאות build להפצה, יכול להיות שהכיווץ יסיר את משאב המחרוזת של שם המודול אם הקוד במודול הבסיס לא מפנה אליו. כדי לוודא שמשאב המחרוזת נשאר בפלט ה-build, צריך לכלול את המשאב בקובץ שמירה של משאבים בהתאמה אישית.
בתפריט הנפתח בקטע Install-time inclusion, בוחרים באפשרות Include module at install-time. 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). הקוד, המשאבים והארגון שמוגדרים כברירת מחדל צריכים להיות דומים לאלה של מודול האפליקציה הרגיל.
איך מגדירים מודול שמותקן בזמן ההתקנה כמודול שניתן להסרה
יכול להיות שיהיה שימושי ליצור מודולים של תכונות למסירה בזמן ההתקנה, עם אפשרות להסיר אותם מאוחר יותר אם הם כבר לא נדרשים. לדוגמה, כדי להקטין את גודל האפליקציה המותקנת, אפשר להפוך למודולרי את התוכן שנדרש להדרכה או להכשרת עובדים חדשים, ואז להסיר את המודול של התכונות באמצעות Play Core API אחרי שהמשתמש מסיים את ההגדרה של האפליקציה.
כברירת מחדל, אי אפשר להסיר מודולים שמותקנים בזמן ההתקנה. כדי לסמן מודול כניתן להסרה ולאפשר את הסרת ההתקנה שלו, מוסיפים את התג removable ומגדירים את הערך שלו ל-true:
<dist:module ... >
<dist:delivery>
<dist:install-time>
<dist:removable dist:value="true"/>
</dist:install-time>
</dist:delivery>
</dist:module>