סקירה כללית של פרויקטים

פרויקט ב-Android Studio for Platform‏ (ASfP) מכיל את כל מה שמגדיר את סביבת העבודה שלכם עבור בסיס הקוד של AOSP, החל מקוד מקור ונכסים ועד לקוד בדיקה ותצורות build.

כשמתחילים פרויקט חדש, ASfP יוצר את המבנה הנדרש לכל הקבצים ומציג אותם בחלון Project. כדי לפתוח את החלון, בוחרים באפשרות View > Tool Windows > Project (תצוגה > חלונות כלים > פרויקט).

בדף הזה מופיעה סקירה כללית של הרכיבים העיקריים בהגדרות הפרויקט.

הגדרות אישיות של פרויקט (.asfp-project)

ההגדרה של פרויקט ASfP נקבעת על ידי הקובץ .asfp-project, שנמצא בספריית השורש של הפרויקט. קובץ ה-YAML הזה חיוני לשליטה במה שנכנס לפרויקט ובאופן הפעולה של תכונות קריטיות. אפשר לפתוח אותו דרך התפריט הראשי באמצעות ASfP > Project > Open Config או על ידי איתור שלו בתצוגת הפרויקט.

כשיוצרים פרויקט, המערכת בונה הגדרה על סמך המפרטים שהמשתמש סיפק. אפשר לערוך את כל הפרמטרים בהגדרה בכל שלב כדי לשנות את המפרט של הפרויקט, למשל כדי לעדכן את הספריות או המודולים של הפרויקט. לאחר מכן צריך לבצע סנכרון כדי שהשינויים יבואו לידי ביטוי.

פרמטרים להגדרה

אלה הפרמטרים העיקריים שאפשר להגדיר בקובץ .asfp-project:

repo

חובה

נתיב מוחלט לשורש המאגר של פלטפורמת Android.

repo: /path/to/aosp

lunch

חובה

יעד ההשקה שישויך לפרויקט. הוא משמש לכל פעולות ה-build של Soong, כולל סנכרון והגדרות הפעלה רלוונטיות.

lunch: your-product-variant-userdebug

directories

אופציונלי

ספריות שרוצים לכלול בפרויקט או להחריג ממנו. אלה צריכים להיות נתיבים יחסיים ביחס לתיקיית הבסיס repo.

directories:
  include:
    -   frameworks/base
    -   packages/apps/Settings
  exclude:
    -   vendor
    -   out/soong

modules

אופציונלי

מודולים שרוצים לכלול בפרויקט או להחריג ממנו. הם פועלים בשילוב עם directories שצוין קודם. אפשר להשתמש בשמות מלאים או מקוצרים.

modules:
  include:
    -   SystemUIGoogle
    -   frameworks/base/services/core/java:services
  exclude:
    -   UnusedModule

test_sources

אופציונלי

מערכת ASfP מנסה להבחין בין מקורות ייצור למקורות בדיקה, אבל במקרים מסוימים צריך לציין במפורש מקורות בדיקה. צריך לספק אותם כנתיבים יחסיים ביחס לשורש repo. כל שורשי המקור שהם ספריות משנה של הנתיבים שצוינו יסומנו כבדיקה.

test_sources:
  -   cts/tests/tests/example
  -   tests/mytests

other_languages

אופציונלי

התמיכה ב-Java כלולה כברירת מחדל. אפשר להוסיף תמיכה בשפות אחרות. ‫ASfP תומך גם ב-C/C++‎‏ (cpp) וב-Rust‏ (rust).

other_languages:
  -   cpp
  -   rust

build_config

אופציונלי

הפרמטר הזה מאפשר להוסיף דגלים מותאמים אישית או משתני סביבה לאירועי בנייה של Soong. ההגדרה הזו חלה על כל הפעולות בסביבת הפיתוח המשולבת שמובילות לבניית Soong, כולל סנכרון והגדרות הפעלה.

build_config:
  flags:
    -   -j64
  env:
    SOONG_ALLOW_MISSING_DEPENDENCIES: true
    MY_CUSTOM_VAR: value