פרויקט ב-Android Studio מכיל את כל מה שמגדיר את סביבת העבודה של האפליקציה, החל מקוד המקור ונכסים דיגיטליים ועד לקוד הבדיקה ותצורות ה-build.
כשמתחילים פרויקט חדש, Android Studio יוצר את המבנה הדרוש לכל הקבצים ומציג אותם בחלון Project ב-Android Studio. כדי לפתוח את החלון, בוחרים באפשרות View > Tool Windows > Project (תצוגה > חלונות כלים > פרויקט).
בדף הזה מוצגת סקירה כללית של הרכיבים העיקריים בפרויקט.
מודולים
מודול הוא אוסף של קובצי מקור והגדרות בנייה שמאפשרים לחלק את הפרויקט ליחידות נפרדות של פונקציונליות. פרויקט יכול לכלול מודול אחד או יותר, ומודול אחד יכול להשתמש במודול אחר כתלות. אפשר לבנות, לבדוק ולנפות באגים בכל מודול בנפרד. שימו לב שבמסמכי Gradle, יכול להיות שהמונח 'מודולים' יופיע בתור 'פרויקטים' או 'תת-פרויקטים'.
מודולים נוספים שימושיים כשיוצרים ספריות קוד בפרויקט שלכם, או כשרוצים ליצור קבוצות שונות של קוד ומשאבים לסוגים שונים של מכשירים, כמו טלפונים ומכשירים לבישים, אבל רוצים שכל הקבצים יהיו בתחום של אותו פרויקט ושישתפו קוד.
כדי להוסיף מודול חדש לפרויקט, לוחצים על קובץ > חדש > מודול חדש.
ב-Android Studio יש כמה סוגים שונים של מודולים:
- מודול של אפליקציית Android
מספק קונטיינר לקוד המקור של האפליקציה, לקובצי המשאבים ולהגדרות ברמת האפליקציה, כמו קובץ ה-build ברמת המודול וקובץ מניפסט של Android. כשיוצרים פרויקט חדש, מודול האפליקציה שמוגדר כברירת מחדל נקרא app.
Android Studio מציע את סוגי מודולי האפליקציות הבאים:
- טלפון וטאבלט
- כלי רכב
- Wear OS
- טלוויזיה
כל מודול מספק קבצים חיוניים ותבניות קוד שמתאימות לאפליקציה או לסוג המכשיר הרלוונטיים.
מידע נוסף על הוספת מודול זמין במאמר הוספת מודול למכשיר חדש.
- מודול של תכונות
-
מייצג תכונה מודולרית של האפליקציה שיכולה להפיק תועלת מ-Play
Feature Delivery. לדוגמה, באמצעות מודולים של תכונות, אתם יכולים לספק למשתמשים שלכם
תכונות מסוימות של האפליקציה לפי דרישה או כחוויות מיידיות באמצעות Google Play ללא התקנה.
Android Studio מציע את הסוגים הבאים של מודולים של תכונות:
- מודול תכונות דינמי
- Instant Dynamic Feature Library Module
מידע נוסף זמין במאמר בנושא הפצת פיצ'רים ב-Play.
- Library module
מספקת מאגר לקוד שאפשר לעשות בו שימוש חוזר, ואפשר להשתמש בו כתלות במודולים אחרים של האפליקציה או לייבא אותו לפרויקטים אחרים. מבחינה מבנית, מודול ספרייה זהה למודול אפליקציה, אבל כשמבצעים 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.
- Benchmark > Microbenchmark: מכיל קבצים שנדרשים למדידה קבועה של ביצועי הקוד ולפרסום תוצאות השוואה. מודולים של מיקרו-בנצ'מרק עוזרים במיוחד למדוד את הביצועים של קטעי קוד קטנים יותר שנעשה בהם שימוש חוזר. מידע נוסף זמין במאמר בנושא מיקרו-בנצ'מרק.
כשיוצרים מודול ספרייה ורוצים להוסיף אותו כתלות למודול של אפליקציית 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/- מכיל פלט של build.
libs/- מכיל ספריות פרטיות.
src/- מכיל את כל הקוד וקבצי המשאבים של המודול בספריות המשנה הבאות:
androidTest/- מכיל קוד לבדיקות מכשור שפועלות במכשיר Android. מידע נוסף זמין במאמר בנושא בדיקה ב-Android Studio.
cpp/- מכיל קוד מקומי של C או C++ באמצעות Java Native Interface (JNI). מידע נוסף זמין במאמרי העזרה בנושא Android NDK.
main/- הספרייה מכילה את קובצי קבוצת המקורות 'הראשיים': קוד Android ומשאבים שמשותפים לכל וריאנטים ה-build (קובצי וריאנטים אחרים של ה-build נמצאים בספריות מקבילות, כמו
src/debug/לסוג build לניפוי באגים):AndroidManifest.xml- תיאור של אופי האפליקציה וכל אחד מהרכיבים שלה. מידע נוסף מופיע במאמר סקירה כללית של קובץ מניפסט של אפליקציה.
java/- מכיל מקורות קוד ב-Kotlin או ב-Java, או בשניהם, אם באפליקציה יש קוד מקור ב-Kotlin וב-Java.
kotlin/- מכיל רק מקורות של קוד Kotlin.
res/- מכילה משאבי אפליקציה, כמו קבצים של רכיבים גרפיים וקבצים של מחרוזות ממשק משתמש. מידע נוסף זמין במאמר סקירה כללית של משאבי אפליקציות.
assets/- מכיל קבצים שצריך לקמפל לקובץ APK כמו שהם. לדוגמה,
זה מיקום טוב לטקסטורות ולנתוני משחק. אפשר לנווט בספרייה הזו כמו במערכת קבצים רגילה, באמצעות 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 וכלי הבנייה שבהם יש להשתמש כדי לקמפל את המודול.
- חתימה: מציינים את האישור שבו רוצים להשתמש כדי לחתום על האפליקציה.
-
Dependencies: רשימה של יחסי התלות של הספרייה, הקובץ והמודול במודול הזה. בחלונית הזו אפשר להוסיף, לשנות ולמחוק תלויות. מידע נוסף על יחסי תלות בין מודולים זמין במאמר הגדרת וריאציות של build.
-
Build Variants: מאפשר להגדיר טעמים שונים וסוגי build לפרויקט.
-
Flavors: מאפשר ליצור כמה flavors של גרסת build, כאשר כל flavor מציין קבוצה של הגדרות תצורה, כמו גרסת ה-SDK המינימלית והגרסה שמיועדת למודול, וקוד הגרסה ושם הגרסה.
לדוגמה, אפשר להגדיר גרסה אחת עם גרסת SDK מינימלית של 21 וגרסת SDK לטירגוט של 29, וגרסה אחרת עם גרסת SDK מינימלית של 24 וגרסת SDK לטירגוט של 33.
- Build Types: מאפשר ליצור ולשנות הגדרות של build, כמו שמתואר במאמר הגדרת וריאציות של build. כברירת מחדל, לכל מודול יש סוגי build של debug ו-release, ואפשר להגדיר עוד סוגים לפי הצורך.
-