המשאבים באפליקציות, כמו מפות סיביות ופריסות, מאורגנים לפי סוג ספציפי
ספריות בתוך ספריית res/
של כל מודול. אפשר גם להוסיף אפשרות חלופית
גרסאות של כל קובץ שעברו אופטימיזציה למכשירים שונים
הגדרות אישיות, כמו גרסה ברזולוציה גבוהה של מפת סיביות (bitmap) לצפיפות גבוהה.
מסכים.
בעזרת Android Studio אפשר להוסיף משאבים חדשים ומשאבים חלופיים בכמה בהתאם לסוג המשאב שרוצים להוסיף. בדף הזה נסביר איך כדי להוסיף קובצי משאבים בסיסיים, איך לשנות את המיקום של המשאבים האופן שבו פועל מיזוג המשאבים.
בדפים הבאים מוסבר איך ליצור סוגי משאבים ספציפיים:
- כדי להוסיף קובצי פריסה, ראו פיתוח ממשק משתמש באמצעות עורך הפריסה.
- כדי להוסיף קובצי מחרוזות, ראו לוקליזציה של ממשק המשתמש באמצעות עורך התרגומים.
- כדי להוסיף מפות סיביות, כדאי לעיין במאמר בנושא יצירת סמלי אפליקציות באמצעות Image Asset Studio.
- כדי להוסיף קובצי SVG, כדאי לעיין במאמר הוספת גרפיקה וקטורית בצפיפות גבוהה.
הסבר איך להפנות למשאבים מהאפליקציה את הקוד, ראו סקירה כללית של משאבי האפליקציה
הוספת קובץ משאבים בפורמט XML
למרות שהקישורים לדפים הקודמים מתארים תהליכי עבודה שמותאמים אישית לכל אחד מהם אפשר להוסיף כל קובץ משאב XML באמצעות הפעולות הבאות שלבים:
לוחצים על מודול היעד של אפליקציית היעד בחלון Project בתצוגה Android או בתצוגה Project.
- בוחרים באפשרות קובץ > חדש > קובץ משאבים של Android.
- ממלאים את הפרטים בתיבת הדו-שיח:
- שם הקובץ: מזינים את השם של קובץ ה-XML (לא נדרש
סיומת
.xml
). - סוג המשאב: בוחרים את סוג המשאב שרוצים ליצור.
- Root Fundamentals: אם רלוונטי, בוחרים את רכיב ה-XML הבסיסי של חדש. חלק מסוגי המשאבים תומכים רק בסוג אחד של רכיב בסיס. בהתאם בסוג המשאב שנבחר, יכול להיות שאי אפשר יהיה לערוך את השדה.
- קבוצת המקור: בוחרים את קבוצת המקור שבה רוצים לשמור את הקובץ.
- שם הספרייה: יש לתת שם לספרייה בצורה ספציפית לסוג המשאב ולמגדירי התצורה. אין לערוך את המסמך הזה רוצים להוסיף מגדירי תצורה את שם הספרייה באופן ידני (במקום זאת, יש להשתמש במגדירים זמינים).
- מגדירים זמינים: במקום לכלול תוחמי הגדרות באופן ידני בשם הספרייה, ניתן להוסיף אותם על ידי בחירת תוחם מתוך לוחצים על Add (הוספה).
- שם הקובץ: מזינים את השם של קובץ ה-XML (לא נדרש
סיומת
- לאחר הוספת כל המאפיינים הרצויים, לוחצים על אישור.
טיפ: כדי לפתוח גרסה פשוטה יותר של תיבת הדו-שיח קובץ משאב חדש שהוא ספציפי לסוג המשאב שרוצים להוסיף, לוחצים לחיצה ימנית על משאב קיים בספריית המשאבים בתוך התיקייה res ובוחרים חדש > קובץ משאב type-name.
משאבי XML מורכבים מוטבעים
למשאבים מורכבים מסוימים נדרשים מספר קובצי משאבים בפורמט XML. לדוגמה, פריט אנימציה של וקטור גרפיקה שניתן להזזה, כולל אובייקט וקטורי שניתן לשרטוט ואובייקט אנימציה ונדרש לו לפחות שלושה קובצי XML.
בדוגמה הזו, ניתן ליצור את שלושת קובצי ה-XML הנפרדים ולשמור אותם, אם צריך לעשות שימוש חוזר באחד או יותר אותם. אבל אם קובצי ה-XML משמשים רק ליצירת וקטור אנימציה הזה, אפשר להשתמש בפורמט המשאבים המוטבע שסופק בנכס Android כלי האריזה (AAPT). בעזרת AAPT אפשר להגדיר את כל שלושת המשאבים בקובץ XML אחד. חדש. אפשר לקרוא מידע נוסף במאמר בנושא הטמעת XML מורכב משאבים.
הוספה של ספריית משאבים
כדי להוסיף ספריית משאבים חדשה, מבצעים את השלבים הבאים:
לוחצים על מודול היעד של אפליקציית היעד בחלון פרויקט.
- בוחרים באפשרות קובץ > חדש > ספריית המשאבים של Android.
- ממלאים את הפרטים בתיבת הדו-שיח:
- שם הספרייה: יש לתת שם לספרייה בצורה ספציפית לסוג המשאב והשילוב של מגדירי ההגדרות. לא מומלץ לערוך זאת, אלא אם רוצים להוסיף ערכי הגדרה שם הספרייה באופן ידני (במקום זאת, יש להשתמש במגדירים זמינים).
- סוג המשאב: בוחרים את סוג המשאב שרוצים שהספרייה תכיל.
- קבוצת המקור: בוחרים את קבוצת המקורות שבה רוצים את הספרייה.
- מגדירים זמינים: במקום לכלול באופן ידני תוחמי הגדרות אישיות בשם הספרייה, ניתן להוסיף אותם על ידי בחירת תוחם מתוך לוחצים על Add (הוספה).
- לאחר הוספת כל המאפיינים הרצויים, לוחצים על אישור.
שינוי ספריית המשאבים
כברירת מחדל, המשאבים נמצאים ב-
module-name/src/source-set-name/res/
לדוגמה, המשאבים שבקבוצת המקור הראשי של המודול נמצאים ב-src/main/res/
,
והמשאבים עבור קבוצת המקור של ניפוי הבאגים נמצאים ב-src/debug/res/
.
עם זאת, אפשר לשנות את הנתיבים האלה לכל
מיקום (ביחס לקובץ build.gradle
) עם המאפיין res.srcDirs
בבלוק sourceSets
. לדוגמה:
מגניב
android { sourceSets { main { res.srcDirs = ['resources/main'] } debug { res.srcDirs = ['resources/debug'] } } }
Kotlin
android { sourceSets { getByName("main") { res.srcDirs("resources/main") } getByName("debug") { res.srcDirs("resources/debug") } } }
אפשר גם לציין כמה ספריות משאבים לקבוצת מקורות אחת, ואז כלי ה-build ממזגים אותם יחד. לדוגמה:
מגניב
android { sourceSets { main { res.srcDirs = ['res1', 'res2'] } } }
Kotlin
android { sourceSets { main { res.srcDirs("res1", "res2") } } }
למידע נוסף, אפשר לקרוא את קבוצות מקורות.
מיזוג משאבים
המשאבים בקובץ האפליקציה הסופי יכולים להגיע משלושה מקורות:
- קבוצת המקור הראשית (בדרך כלל נמצאת ב-
src/main/res/
) - יצירת קבוצות מקור של וריאנטים
- ספריות Android (AAR)
כשכל המשאבים מכל קבוצת מקורות או ספרייה הם ייחודיים, כולם נוספו לאפליקציה הסופית. משאב נחשב לייחודי אם שם הקובץ שלו ייחודיות ספריית סוג המשאב את הרצף מזהה המשאבים (אם הוגדר).
אם יש שתי גרסאות או יותר שתואמות לאותו משאב, רק גרסה אחת תיכלל באפליקציה הסופית. בחירת כלי ה-build איזו גרסה לשמור על סמך סדר העדיפות הבא (העדיפות הגבוהה ביותר) בצד שמאל):
גרסת build > סוג build > טעם המוצר > קבוצת המקור הראשית > של יחסי התלות של ספריות
לדוגמה, אם קבוצת המקור הראשית מכילה:
res/layout/example.xml
res/layout-land/example.xml
סוג ה-build של ניפוי הבאגים כולל:
res/layout/example.xml
לאחר מכן האפליקציה הסופית כוללת את res/layout/example.xml
מסוג ה-build של ניפוי הבאגים
res/layout-land/example.xml
מקבוצת המקורות הראשית.
אבל אם תצורת ה-build שלך מציינת מספר תיקיות של משאבים קבוצת מקורות נתונה, ויש התנגשות בין המקורות האלה, שגיאה והמיזוג נכשל כי לכל ספריית משאבים יש בעדיפות גבוהה.