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

פרויקט ב-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