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