פרויקט ב-Android Studio מכיל את כל מה שמגדיר את סביבת העבודה של האפליקציה, החל מקוד המקור ונכסים דיגיטליים ועד לקוד הבדיקה ותצורות ה-build.
כשמתחילים פרויקט חדש, Android Studio יוצר את המבנה הדרוש לכל הקבצים ומציג אותם בחלון Project ב-Android Studio. כדי לפתוח את החלון, בוחרים באפשרות תצוגה > חלונות כלים > פרויקט.
בדף הזה מופיעה סקירה כללית של הרכיבים העיקריים בפרויקט.
מודולים
מודול הוא אוסף של קובצי מקור והגדרות בנייה שמאפשרים לחלק את הפרויקט ליחידות נפרדות של פונקציונליות. לפרויקט יכול להיות מודול אחד או כמה מודולים, ומודול אחד יכול להשתמש במודול אחר כתלות. אפשר לבנות, לבדוק ולנפות באגים בכל מודול בנפרד. שימו לב שבמסמכי Gradle, יכול להיות שתשמעו על מודולים כ "פרויקטים" או "תת-פרויקטים".
מודולים נוספים שימושיים כשיוצרים ספריות קוד בפרויקט שלכם, או כשרוצים ליצור קבוצות שונות של קוד ומשאבים לסוגים שונים של מכשירים, כמו טלפונים ומכשירים לבישים, אבל רוצים שכל הקבצים יהיו בהיקף של אותו פרויקט ושישתפו קוד מסוים.
כדי להוסיף מודול חדש לפרויקט, לוחצים על קובץ > חדש > מודול חדש.
ב-Android Studio יש כמה סוגים שונים של מודולים:
- מודול של אפליקציית Android
מספק קונטיינר לקוד המקור של האפליקציה, לקובצי המשאבים ולהגדרות ברמת האפליקציה, כמו קובץ ה-build ברמת המודול וקובץ מניפסט של Android. כשיוצרים פרויקט חדש, מודול האפליקציה שמוגדר כברירת מחדל נקרא app.
ב-Android Studio יש מודולים של אפליקציות מהסוגים הבאים:
- טלפון וטאבלט
- כלי רכב
- Wear OS
- טלוויזיה
כל מודול מספק קבצים חיוניים וכמה תבניות קוד שמתאימות לאפליקציה או לסוג המכשיר הרלוונטיים.
מידע נוסף על הוספת מודול זמין במאמר הוספת מודול למכשיר חדש.
- מודול של תכונות
-
מייצג תכונה מודולרית של האפליקציה שיכולה לנצל את Play
Feature Delivery. לדוגמה, באמצעות מודולים של תכונות, אתם יכולים לספק למשתמשים שלכם תכונות מסוימות של האפליקציה לפי דרישה או כחוויות מיידיות באמצעות Google Play ללא התקנה.
Android Studio מציע את סוגי מודולי התכונות הבאים:
- מודול תכונות דינמי
- Instant Dynamic Feature Library Module
מידע נוסף זמין במאמר בנושא הפצת פיצ'רים ב-Play.
- מודול ספרייה
הוא מספק מאגר לקוד שאפשר לעשות בו שימוש חוזר, ואפשר להשתמש בו כתלות במודולים אחרים של האפליקציה או לייבא אותו לפרויקטים אחרים. מבחינה מבנית, מודול ספרייה זהה למודול אפליקציה, אבל כשמבצעים build, נוצר קובץ ארכיון קוד במקום APK, ולכן אי אפשר להתקין אותו במכשיר.
בחלון Create New Module (יצירת מודול חדש), Android Studio מציע את הסוגים הבאים של מודולים לספריות:
- ספריית Android: מכילה את כל סוגי הקבצים שנתמכים בפרויקט Android, למעט קוד C++ מקורי, כולל קוד מקור של Java ו-Kotlin, משאבים וקובצי מניפסט. תוצאת ה-build היא קובץ Android Archive (AAR) שאפשר להוסיף כתלות למודולים של אפליקציית Android.
- ספרייה מקורית של Android: מכילה את כל סוגי הקבצים שנתמכים בפרויקט Android, בדומה לספריית Android. עם זאת, ספריות מקוריות של Android יכולות להכיל גם קוד מקור מקורי של C++. תוצאת ה-build היא קובץ Android Archive (AAR) שאפשר להוסיף כתלות למודולים של אפליקציית Android.
- ספריית Java או Kotlin: מכילה רק קובצי מקור של Kotlin או Java. תוצאת ה-build היא קובץ Java Archive (JAR) שאפשר להוסיף כתלות למודולים של אפליקציות Android או לפרויקטים אחרים של Kotlin או Java.
- השוואה לביצועים של מערכות אחרות > השוואה לביצועים של מערכות אחרות: מכיל קבצים שנדרשים למדידה קבועה של ביצועי הקוד ולפרסום תוצאות השוואה לביצועים של מערכות אחרות. מודולים של מיקרו-בנצ'מרק שימושיים במיוחד למדידת הביצועים של קטעי קוד קטנים יותר שנעשה בהם שימוש חוזר. מידע נוסף זמין במאמר בנושא מיקרו-בנצ'מרק.
כשיוצרים מודול ספרייה ורוצים להוסיף אותו כתלות למודול של אפליקציית Android, צריך להצהיר עליו באופן הבא:
מגניב
dependencies { implementation project(':my-library-module') }
Kotlin
dependencies { implementation(project(":my-library-module")) }
- Test module
הבדיקות נשמרות בנפרד משאר הקוד. אפשר להגדיר את מודול הבדיקה כך שיטרגט וריאציות ספציפיות של גרסאות build.
Android Studio מציע את סוגי מודולי הבדיקה הבאים:
- Baseline Profile Generator: פרופילי Baseline משפרים את אינטראקציות המשתמשים, כמו ניווט וגלילה, כבר מהפעם הראשונה שהם מפעילים את האפליקציה. כדי לשפר את ביצועי האפליקציה ואת חוויית המשתמש, כדאי ליצור פרופילים של Baseline עבור חוויות המשתמשים ההכרחיות (CUJ).
- השוואה לשוק > השוואה לשוק ברמת מאקרו: מכיל קבצים שנדרשים למדידה קבועה של ביצועי הקוד ולפרסום תוצאות ההשוואה לשוק. מודולים של מדדי ביצועים מאקרו שימושיים במיוחד למדידת הביצועים של תרחישי שימוש גדולים יותר באפליקציה, כמו גלילה ברשימה או מניפולציות אחרות בממשק המשתמש. מידע נוסף זמין במאמר בנושא כתיבת בדיקת מאקרו.
קבצים בפרויקט
כברירת מחדל, קובצי הפרויקט מוצגים ב-Android Studio בתצוגה Android. התצוגה הזו לא משקפת את היררכיית הקבצים בפועל בדיסק. במקום זאת, הוא מאורגן לפי מודולים וסוגי קבצים כדי לפשט את הניווט בין קובצי המקור העיקריים של הפרויקט, והוא מסתיר קבצים או ספריות מסוימים שלא נמצאים בשימוש נפוץ.
חלק מההבדלים המבניים בין התצוגה של Android לבין המבנה בדיסק הם שהתצוגה של Android:
- כל קובצי ההגדרות שקשורים לבנייה של הפרויקט מוצגים בקבוצה Gradle Script ברמה העליונה.
- הצגת כל קובצי המניפסט לכל מודול בקבוצה ברמת המודול, אם יש לכם קובצי מניפסט שונים לטעמים שונים של מוצרים ולסוגי build שונים.
- כל קובצי המשאבים החלופיים מוצגים בקבוצה אחת במקום בתיקיות נפרדות לפי מסווג המשאבים. לדוגמה, כל הגרסאות של סמל מרכז האפליקציות עם צפיפות שונה מוצגות זו לצד זו.
בכל מודול של אפליקציית Android, הקבצים מוצגים בקבוצות הבאות:
- מניפסטים
- מכיל את הקובץ
AndroidManifest.xml. - java
- מכיל את קובצי קוד המקור של Kotlin ו-Java, מופרדים לפי שמות החבילות, כולל קוד בדיקת JUnit.
- res
- מכילה את כל המשאבים שאינם קוד, כמו מחרוזות של ממשק המשתמש ותמונות bitmap, שמחולקים לספריות משנה תואמות. מידע נוסף על סוגי משאבים אפשריים זמין במאמר סקירה כללית על משאבי אפליקציות.
תצוגת הפרויקט
כדי לראות את מבנה הקבצים בפועל של הפרויקט, כולל כל הקבצים שמוסתרים בתצוגה Android, בוחרים באפשרות Project בתפריט בחלק העליון של החלון Project.
כשבוחרים בתצוגה פרויקט, אפשר לראות הרבה יותר קבצים וספריות, כולל:
module-name/-
build/
- Contains build outputs.
libs/- מכיל ספריות פרטיות.
src/- מכיל את כל הקוד וקבצי המשאבים של המודול בספריות המשנה הבאות:
androidTest/- מכיל קוד לבדיקות מכשור שפועלות במכשיר Android. מידע נוסף זמין במאמר בנושא בדיקה ב-Android Studio.
cpp/- מכיל קוד מקורי של C או C++ באמצעות Java Native Interface (JNI). מידע נוסף זמין במאמרי העזרה בנושא Android NDK.
main/- מכילה את הקבצים של קבוצת המקורות 'main': קוד ומשאבים של Android שמשותפים לכל הווריאנטים של הבנייה (קבצים של וריאנטים אחרים של הבנייה נמצאים בספריות מקבילות, כמו
src/debug/לסוג הבנייה debug):AndroidManifest.xml- מתאר את אופי האפליקציה ואת כל אחד מהרכיבים שלה. מידע נוסף מופיע במאמר סקירה כללית של קובץ מניפסט של אפליקציה.
java/- מכיל מקורות קוד ב-Kotlin או ב-Java, או בשניהם, אם באפליקציה יש קוד מקור ב-Kotlin וב-Java.
kotlin/- מכיל רק מקורות של קוד Kotlin.
res/- מכילה משאבי אפליקציה, כמו קבצים של רכיבים גרפיים וקבצים של מחרוזות בממשק המשתמש. מידע נוסף זמין במאמר סקירה כללית על משאבי אפליקציות.
assets/
- Contains files to be compiled into an APK file as-is. For example,
this is a good location for textures and נתוני משחק. אפשר לנווט בספרייה הזו כמו במערכת קבצים רגילה, באמצעות URI ולקרוא קבצים כזרם של בייטים באמצעות
AssetManager.
test/- מכיל קוד לבדיקות מקומיות שמופעלות ב-JVM של המארח.
-
build.gradleאוbuild.gradle.kts(מודול) - כאן מוגדרות תצורות ה-build שספציפיות למודול.
build.gradleהוא שם הקובץ הנכון אם משתמשים ב-Groovy כשפת סקריפט ה-build, ו-build.gradle.ktsהוא שם הקובץ הנכון אם משתמשים בסקריפט Kotlin.
-
build.gradleאוbuild.gradle.kts(פרויקט) - ההגדרה הזו מגדירה את תצורת ה-build שחלה על כל המודולים.
build.gradleהוא שם הקובץ הנכון אם משתמשים ב-Groovy כשפת סקריפט ה-build, ו-build.gradle.ktsהוא שם הקובץ הנכון אם משתמשים בסקריפט Kotlin. הקובץ הזה הוא חלק בלתי נפרד מהפרויקט, ולכן צריך לשמור אותו בבקרת גרסאות עם כל שאר קוד המקור.מידע על קובצי build אחרים זמין במאמר הגדרת ה-build.
הגדרות מבנה הפרויקט
כדי לשנות הגדרות שונות בפרויקט Android Studio, פותחים את תיבת הדו-שיח Project Structure (מבנה הפרויקט) על ידי לחיצה על File > Project Structure (קובץ > מבנה הפרויקט). הוא כולל את הקטעים הבאים:
- Project: הגדרת הגרסה של Gradle ושל פלאגין של Android Gradle ושם מיקום המאגר.
- מיקום ה-SDK: הגדרה של המיקום של JDK, Android SDK ו-Android NDK שבהם הפרויקט משתמש.
- משתנים: מאפשר לערוך משתנים שמשמשים בסקריפטים של ה-build.
-
מודולים: מאפשר לערוך הגדרות של build ספציפיות למודול, כולל ה-SDK המינימלי והיעד, חתימת האפליקציה ותלות בספריות. דף ההגדרות של כל מודול מחולק לכרטיסיות הבאות:
- מאפיינים: מציינים את הגרסאות של ה-SDK וכלי הבנייה שבהן יש להשתמש כדי לקמפל את המודול.
- חתימה: מציינים את האישור שבו רוצים להשתמש כדי לחתום על האפליקציה.
-
יחסי תלות: רשימה של יחסי התלות של הספריות, הקבצים והמודולים של המודול הזה. בחלונית הזו אפשר להוסיף, לשנות ולמחוק תלויות. מידע נוסף על יחסי תלות בין מודולים זמין במאמר הגדרת וריאציות של build.
-
Build Variants: מאפשר להגדיר טעמים שונים וסוגי build לפרויקט.
-
Flavors: מאפשר ליצור כמה flavors של build, כאשר כל flavor מציין קבוצה של הגדרות תצורה, כמו גרסת ה-SDK המינימלית והגרסה שאליה מכוונים של המודול, וגם קוד הגרסה ושם הגרסה.
לדוגמה, אפשר להגדיר גרסה אחת עם SDK מינימלי ברמה 21 ו-SDK לטירגוט ברמה 29, וגרסה אחרת עם SDK מינימלי ברמה 24 ו-SDK לטירגוט ברמה 33.
- סוגי Build: מאפשר ליצור ולשנות הגדרות של Build, כמו שמתואר במאמר הגדרת וריאציות של Build. כברירת מחדל, לכל מודול יש סוגי בילד של debug ו-release, ואפשר להגדיר עוד סוגים לפי הצורך.
-