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