פרויקטים ב-Android מכילים הרבה קבצים ומבני ספריות שקשורים ל-build, לארגן את מקור האפליקציה והמשאבים. לפני שממשיכים פרטי ההגדרה, נבחן את המבנה הכולל ואת העקרונות הבסיסיים של מה ששייך לכל אחד מהחלקים.
בטבלה הזו מפורטים קבצים אופייניים בפרויקט Android. התיאורים של כל אחד מהמסלולים כולל הערות לגבי סוג התוכן שמופיע בהן. הטובה ביותר שיטות העבודה משתנות עם הזמן, ויכול להיות שהתיאורים האלה לא יהיו תואמים לפרויקט ירשתם או הורדתם מהאינטרנט.
צריך להשתמש בגישה הצהרתית כדי לכתוב קובצי build. לפתח לוגיקה ומשימה ההגדרות צריכות להופיע רק ביישומי פלאגין. באמצעות הגבלה של לוגיקת ה-build ליישומי פלאגין, קובצי build הופכים להצהרות נתונים, ישירות להבנה ועריכה. גרסאות עתידיות עשויות לכלול מפרט חלופי כמו Declarative Gradle, שתמנע לוגיקה של פיתוח .
תיקייה/קובץ |
שימוש |
---|---|
.gradle/ |
ספריית המטמון של פרויקט Gradle מנוהל על ידי Gradle ומכיל את הפצת Gradle, את מטמון הפרויקט ואת קובצי התצורה. אל תשנו את הקבצים בספרייה הזאת! |
.idea/ |
מטא-נתונים של פרויקטים ב-Android Studio אל תשנו את הקבצים בספרייה הזאת! |
build.gradle(.kts) |
צריכה להכיל הצהרות יישומי פלאגין רק כדי להגדיר נתיב Classpath משותף של יישומי פלאגין בין תתי-פרויקטים. קוד אחר צריך להימצא בהגדרות או בקובצי build ברמת הפרויקט בתוך הפרויקט. |
gradle.properties |
מכילה את מאפייני Gradle, ושולטת בהיבטים של סביבת ה-build של Gradle, כמו גודל תמונת מצב של הזיכרון, שמירה במטמון וביצוע מקביל. כמה מאפיינים זמניים של Android מוגדרים כאן כדי לצמצם את השינויים ב-AGP DSL כשהם נוספים ומוסרים מאוחר יותר. |
GRidlew (linux, Mac) gradlew.bat (Windows) |
קובץ Gradle wrapper קובץ אתחול ה-build על ידי הורדת הפצת Gradle, ולאחר מכן העברת פקודות אליה. כך תוכלו להריץ גרסאות build בלי להתקין מראש את Gradle. |
Local.properties |
הגדרת מכונה מקומית מכיל מאפיינים שקשורים למכונה המקומית, כמו המיקום של Android SDK. החרגת הקובץ הזה מבקרת המקור! |
settings.gradle(.kts) |
מכיל פרטי build גלובליים לאתחול Gradle ולהגדרת פרויקט, כמו
|
gradle/ |
|
↳ libs.versions.toml |
מגדירה משתנים ליחסי תלות וליישומי פלאגין שמשמשים ב-build שלכם. אתם צריכים לציין כאן את הגרסאות שאתם רוצים להשתמש בהן, כדי לשמור על עקביות בכל פרויקטי המשנה בפרויקט. |
↳ wrapper/ |
|
↳ gradle-wrapper.jar |
Gradle Shoestrapping קובץ הפעלה הורדה של התפלגות Gradle שצוינה (אם היא לא קיימת), והפעלה שלה והעברת ארגומנטים כלשהם |
↳ gradle-wrapper.properties |
הגדרה של Gradle wrapper מציינת איפה להוריד את הפצת Gradle (כולל באיזו גרסה להשתמש). |
app/ |
תתי-פרויקטים (שנקראים 'מודולים' ב-Android Studio) יכולים ליצור אפליקציות או ספריות, והם עשויים להיות תלויים בפרויקטים משנה אחרים או ביחסי תלות חיצוניים.
|
↳ build.gradle(.kts) |
מסביר איך ליצור את פרויקט המשנה הזה. לכל פרויקט משנה נדרש קובץ build נפרד, והוא צריך לכלול
אסור לכלול לוגיקת build (כמו הגדרות או תנאים של פונקציות Kotlin) או הצהרות על משימות בקובצי ה-build. הלוגיקה והמשימות צריכות להיות שייכות רק ליישומי פלאגין. |
↳ src/ |
קובצי מקור בפרויקט משנה מקבץ קובצי מקור (קוד אפליקציות ומשאבים) בערכות מקור. קבוצת המקור |
↳ main/ |
קבוצת מקור ראשית קוד מקור ומשאבים שמשותפים בכל הווריאציות של ה-build. המקור הזה משמש כבסיס לכל גרסאות ה-build, וקבוצות מקורות אחרות וספציפיות יותר שמוסיפים למקור הזה או מבטלים אותו. |
↳ Java/ ↳ kotlin/ |
קוד המקור של Kootlin ו-Java הספרייה |
↳ res/ |
מכיל משאבי אפליקציות, כמו קובצי XML ותמונות. כל האפליקציות משתמשות במשאבים בסיסיים מסוימים, כמו סמלי מרכז האפליקציות, אבל רבים מהמשאבים האלה, כמו פריסות ותפריטים, משמשים רק באפליקציות שמבוססות על תצוגה. אפליקציות ליצירת אפליקציות משתמשות במשאבי מחרוזות שמוגדרים בספרייה הזו. |
↳ AndroidManifest.xml |
מטא-נתונים של אפליקציות ל-Android ייקרא על ידי מנהל החבילות של Android כדי לומר למערכת
|
↳ androidTest/ |
בדיקת מכשיר קבוצת מקור 'מכיל מקור' לבדיקות שירוצו במכשיר או באמולטור מבוסס Android. לבדיקות האלה יש גישה לסביבת Android אמיתית, אבל הן מבצעות לאט יותר מאשר בבדיקות המארח. |
↳ test/ |
בדיקת מארח קבוצת מקור מכילה מקור לבדיקות שרצות באופן מקומי ב-JVM, בניגוד לבדיקות שרצות במכשיר. הרצת הבדיקות האלה מהירה יותר מבדיקות המכשיר. עם זאת, כל הפעלות המערכת (כולל מחזורי החיים שמריצים את האפליקציה) חייבות להיות מוקפות, לזייף, לדגום או לבצע סימולציה אחרת. כל קובצי המקור בקבוצת המקור |
↳ proGuard-כללים.pro |
הגדרת כללים לשליטה בכיווץ, באופטימיזציה ובערפול קוד (obfuscation) של אפליקציות. שיטת R8 מסירה קוד ומשאבים שלא נחוצים, מבצעת אופטימיזציה לביצועים של סביבת זמן ריצה ומצמצמת עוד יותר את הקוד על ידי שינוי השם של המזהים. |