ภาพรวมโปรเจ็กต์

โปรเจ็กต์ใน 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