โปรเจ็กต์ใน Android Studio for Platform (ASfP) มีทุกอย่างที่กำหนดพื้นที่ทำงานสำหรับฐานของโค้ด AOSP ตั้งแต่โค้ดที่มาและเนื้อหา ไปจนถึงโค้ดทดสอบและการกำหนดค่าการสร้าง
เมื่อคุณเริ่มโปรเจ็กต์ใหม่ ASfP จะสร้างโครงสร้างที่จำเป็นสำหรับไฟล์ทั้งหมดและทำให้ไฟล์เหล่านั้นปรากฏในหน้าต่างโปรเจ็กต์ หากต้องการเปิดหน้าต่าง ให้เลือกมุมมอง > หน้าต่างเครื่องมือ > โปรเจ็กต์
หน้านี้ให้ภาพรวมของคอมโพเนนต์หลักในการกำหนดค่าโปรเจ็กต์
การกำหนดค่าโปรเจ็กต์ (.asfp-project)
การกำหนดค่าโปรเจ็กต์ ASfP ควบคุมโดยไฟล์ .asfp-project ซึ่งอยู่ในรูทของไดเรกทอรีโปรเจ็กต์ ไฟล์ YAML นี้มีความสำคัญอย่างยิ่งต่อการควบคุมสิ่งที่อยู่ในโปรเจ็กต์และวิธีที่ฟีเจอร์ที่สำคัญทำงาน คุณสามารถเปิดไฟล์นี้ผ่านเมนูหลักโดยใช้ASfP > โปรเจ็กต์ > เปิดการกำหนดค่า หรือค้นหาในมุมมองโปรเจ็กต์
เมื่อสร้างโปรเจ็กต์ ระบบจะสร้างการกำหนดค่าตามข้อกำหนดที่ผู้ใช้ระบุ คุณสามารถแก้ไขพารามิเตอร์ทั้งหมดในการกำหนดค่าได้ทุกเมื่อเพื่อแก้ไขข้อกำหนดของโปรเจ็กต์ เช่น อัปเดตไดเรกทอรีหรือโมดูลของโปรเจ็กต์ หลังจากนั้นคุณจะต้องซิงค์เพื่อให้การเปลี่ยนแปลงมีผล
พารามิเตอร์การกำหนดค่า
ต่อไปนี้คือพารามิเตอร์หลักที่คุณกำหนดค่าได้ในไฟล์ .asfp-project
repo
ต้องระบุ
Absolute Path ไปยังรูทของที่เก็บแพลตฟอร์ม Android
repo: /path/to/aosp
lunch
ต้องระบุ
เป้าหมายการเปิดตัวที่จะจับคู่กับโปรเจ็กต์ พารามิเตอร์นี้ใช้สำหรับการดำเนินการสร้าง 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 ได้ การกำหนดค่านี้มีผลกับการดำเนินการทั้งหมดใน IDE ที่ส่งผลให้เกิดบิลด์ Soong รวมถึงการซิงค์และการกำหนดค่าการเรียกใช้
build_config:
flags:
- -j64
env:
SOONG_ALLOW_MISSING_DEPENDENCIES: true
MY_CUSTOM_VAR: value