โปรเจ็กต์ใน Android Studio for Platform (ASfP) มีทุกอย่างที่กำหนดพื้นที่ทำงานสำหรับฐานของโค้ด AOSP ตั้งแต่ซอร์สโค้ดและชิ้นงานไปจนถึงโค้ดทดสอบและการกำหนดค่าบิลด์ Soong
ASfP สร้างโปรเจ็กต์แพลตฟอร์มขนาดใหญ่และกู้คืนโมเดลโปรเจ็กต์จากสแนปช็อตที่แคชไว้เมื่อเริ่มต้นระบบ โดยสร้างขึ้นจากโมเดลพื้นที่ทำงาน IntelliJ ระบบจะยกเว้นเนื้อหาภายในไดเรกทอรี out/ และไฟล์ gen ที่สร้างขึ้นจากขอบเขตการค้นหาโปรเจ็กต์ เพื่อให้การนำทางสัญลักษณ์และไฟล์ยังคงรวดเร็ว
การกำหนดค่าโปรเจ็กต์ (.asfp-project)
ไฟล์ YAML .asfp-project ซึ่งอยู่ในรูทของไดเรกทอรีโปรเจ็กต์จะควบคุมการกำหนดค่าโปรเจ็กต์ ASfP ไฟล์นี้จะกำหนดไดเรกทอรี โมดูล Soong ภาษา และแฟล็กการสร้างที่จะรวมไว้ในพื้นที่ทำงาน
คุณสามารถเปิดการกำหนดค่าโปรเจ็กต์ได้ทุกเมื่อโดยใช้ตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้
- เลือก ASfP > โปรเจ็กต์ > เปิดการกำหนดค่า จากเมนูหลัก
- ดับเบิลคลิก
.asfp-projectในรูทของหน้าต่างเครื่องมือโปรเจ็กต์ - คลิกเปิดการกำหนดค่า ในแถบเครื่องมือของหน้าต่างเครื่องมือ Soong
หลังจากแก้ไข .asfp-project แล้ว ให้เรียกใช้การซิงค์โปรเจ็กต์เพื่อให้การเปลี่ยนแปลงมีผล
เทมเพลตโปรเจ็กต์ที่แชร์ได้ (ส่งออกและนำเข้า)
ทีมที่ทำงานในระบบย่อยเดียวกัน (เช่น SystemUI, Settings, SurfaceFlinger หรือ Automotive) สามารถแชร์การกำหนดค่า .asfp-project มาตรฐานเป็นเทมเพลตได้โดยทำดังนี้
ส่งออกเป็นเทมเพลต: คลิกขวาที่แท็บเครื่องมือแก้ไข
.asfp-projectหรือเลือก ASfP > โปรเจ็กต์ > ส่งออกการกำหนดค่าเป็นเทมเพลต เพื่อบันทึกไฟล์เทมเพลตที่แชร์ได้
นำเข้าจากเทมเพลต: เมื่อสร้างโปรเจ็กต์ใหม่ใน วิซาร์ดการตั้งค่าโปรเจ็กต์ ให้เลือก นำเข้าจากเทมเพลต และ เลือกไฟล์ YAML
.asfp-projectที่แชร์เพื่อป้อนข้อมูลไดเรกทอรี โมดูล และการตั้งค่าการสร้างล่วงหน้า
พารามิเตอร์การกำหนดค่า
ไฟล์ .asfp-project รองรับพารามิเตอร์ต่อไปนี้
repo
ต้องระบุ: เส้นทางแบบสัมบูรณ์ไปยังรูทการชำระเงินของที่เก็บแพลตฟอร์ม Android
repo: /path/to/aosp
lunch
ต้องระบุ: เป้าหมายการเปิดตัวที่จับคู่กับโปรเจ็กต์ ใช้สำหรับการดำเนินการสร้าง ซิงค์ และติดตั้งใช้งาน Soong ทั้งหมด
lunch: aosp_cf_x86_64_phone-aosp_current-userdebug
directories
ไม่บังคับ: ไดเรกทอรีที่จะรวมไว้ในโปรเจ็กต์หรือยกเว้นจากโปรเจ็กต์ (เทียบกับ
repo รูท) รองรับไดเรกทอรีที่ลิงก์สัญลักษณ์และรูทของซอร์ส
directories:
include:
- frameworks/base
- packages/apps/Settings
exclude:
- vendor
- out/soong
modules
ไม่บังคับ: โมดูล Soong เฉพาะที่จะรวมไว้ในโปรเจ็กต์หรือยกเว้นจากโปรเจ็กต์
ทำงานร่วมกับ directories รองรับทั้งชื่อโมดูลแบบเต็มและแบบย่อ
modules:
include:
- SystemUI
- frameworks/base/services/core/java:services
exclude:
- UnusedModule
test_sources
ไม่บังคับ: Relative Path ที่จะทำเครื่องหมายเป็นรูทของซอร์สทดสอบเมื่อต้องมีการลบล้างด้วยตนเองสำหรับฮิวริสติกของซอร์สทดสอบอัตโนมัติของ ASfP
test_sources:
- cts/tests/tests/example
- tests/mytests
other_languages
ไม่บังคับ: ระบบจะเปิดใช้การรองรับ Java, Kotlin และ Android.bp โดยค่าเริ่มต้น เพิ่ม cpp สำหรับการรองรับภาษา C และ C++ หรือ rust สำหรับการรองรับภาษา Rust โดยทำดังนี้
other_languages:
- cpp
- rust
build_config
ไม่บังคับ: แฟล็กหรือตัวแปรสภาพแวดล้อมที่กำหนดเองซึ่งส่งไปยังการเรียกใช้การสร้าง Soong ที่ทริกเกอร์โดย IDE (รวมถึงการซิงค์ การสร้างจาก Gutter และการกำหนดค่าการเรียกใช้)
build_config:
flags:
- -j64
env:
SOONG_PARTIAL_COMPILE: true
SOONG_ALLOW_MISSING_DEPENDENCIES: true
โหมดการซิงค์และหน้าต่างเครื่องมือ Soong
ASfP มีหลายวิธีในการซิงโครไนซ์โปรเจ็กต์ IDE กับการชำระเงิน AOSP ทั้งนี้ขึ้นอยู่กับความต้องการของเวิร์กโฟลว์ เข้าถึงการดำเนินการเหล่านี้ได้จากเมนู ASfP > ซิงค์ หรือหน้าต่างเครื่องมือ Soong
- ซิงค์โปรเจ็กต์: วิเคราะห์ไดเรกทอรีและโมดูลที่กำหนดค่าไว้ แล้ว อัปเดตการจัดทำดัชนีและการอ้างอิงของ IDE
- การซิงค์บางส่วน: ซิงค์เฉพาะโมดูลหรือไดเรกทอรีที่เป็นเป้าหมาย ซึ่งช่วยประหยัดเวลาเมื่อทำงานในพื้นที่เฉพาะของแผนผัง
- การซิงค์แบบไม่มีการสร้าง: รีเฟรชโครงสร้างโปรเจ็กต์ IDE และรูทของซอร์สโดยไม่ต้อง เรียกใช้ขั้นตอนการสร้าง Soong ซึ่งมีประโยชน์เมื่อคุณเพิ่มหรือย้ายไฟล์ซอร์ส หรือ สร้างจากเทอร์มินัลแล้ว
- ซิงค์และสร้างแบบเต็ม: รวมการซิงโครไนซ์โปรเจ็กต์กับการสร้าง Soong แบบเต็ม ไว้ในขั้นตอนเดียว
หน้าต่างเครื่องมือ Soong (View > Tool Windows > Soong) จะแสดงตัวบ่งชี้สถานะแบบเรียลไทม์สำหรับโหนดงานการซิงค์แต่ละรายการ ปุ่มสร้างการเข้าถึงด่วน และการดำเนินการคำสั่ง Soong
การสร้าง การติดตั้งใช้งาน และการนำทาง Android.bp ในเครื่องมือแก้ไข
ASfP มีการรองรับเครื่องมือแก้ไขแบบผสานรวมสำหรับไฟล์ Android.bp
สร้าง เรียกใช้ และแก้ไขข้อบกพร่องของเป้าหมายจาก Gutter
เปิดไฟล์ Android.bp ใดก็ได้ในโปรเจ็กต์เพื่อสร้างหรือเปิดเป้าหมายจากไอคอน Gutter 2 รายการ
- ไอคอนสร้าง (โมดูลที่มีชื่อทั้งหมด): ปรากฏขึ้นข้าง
name:ในโมดูลที่มีชื่อทั้งหมด (cc_library_shared,java_library,rust_binary,android_app, และเป้าหมายการทดสอบ) เพื่อสร้างเป้าหมาย Soong นั้น (Build "<module>") - ไอคอนเรียกใช้หรือแก้ไขข้อบกพร่อง (
*_test,*_test_hostและandroid_app): คลิก เรียกใช้ ข้างโมดูลทดสอบหรือการประกาศandroid_appเพื่อเรียกใช้หรือ แก้ไขข้อบกพร่องของโมดูล โมดูลandroid_testจะแก้ไขข้อบกพร่องผ่านatestและโมดูลcc_test*และrust_test*จะเปิดตัวภายใต้ LLDB ในตัว

การกำหนดค่าการเรียกใช้การติดตั้งใช้งานและการแฟลชตามบริบท
สำหรับโมดูลที่ติดตั้งใช้งานได้ในไฟล์ Android.bp คุณสามารถสร้างและเปิดการกำหนดค่าการเรียกใช้ Soong Deploy ตามบริบทจาก Gutter หรือเมนูบริบทที่คลิกขวาได้ด้วยฟีเจอร์ต่อไปนี้
- วิธีการติดตั้งใช้งาน: ติดตั้งใช้งานโดยใช้
adb, สคริปต์เชลล์ที่กำหนดเอง,adevice, หรือflashall - ฮุกการสร้าง Soong ก่อนการเรียกใช้: สร้างโมดูล Soong เป้าหมายโดยอัตโนมัติ ก่อนที่จะทำให้ใช้งานได้กับอุปกรณ์ที่เชื่อมต่อหรืออุปกรณ์เสมือนจริง Cuttlefish

ข้ามไปมาระหว่างซอร์สโค้ดกับ Android.bp
จากไฟล์หรือไดเรกทอรีซอร์สใดก็ได้ในหน้าต่างเครื่องมือโปรเจ็กต์ แท็บเครื่องมือแก้ไข หรือเมนูตามบริบทของเครื่องมือแก้ไข ให้คลิกขวาแล้วเลือกเปิดไฟล์ Android.bp ที่เกี่ยวข้อง ASfP จะค้นหาและไฮไลต์การประกาศโมดูล Android.bp ที่คอมไพล์ไฟล์นั้น โดยจะแก้บล็อก defaults รูปแบบ srcs ที่มีไวลด์การ์ด และลิงก์สัญลักษณ์

ฟีเจอร์อัจฉริยะของเครื่องมือแก้ไข Android.bp และเอกสารประกอบของคำแนะนำเครื่องมือ
- การนำทางข้ามไฟล์และการนับจำนวนการใช้งาน: กด Control แล้วคลิกการอ้างอิงโมดูล
ไฟล์
srcsหรือsoong_config_module_typeเพื่อข้ามไปยังการประกาศ คำแนะนำแบบฝังN Usagesที่คลิกได้จะปรากฏขึ้นข้างชื่อโมดูลและเป้าหมายsrcsที่แชร์ และโมดูลไลบรารีที่ไม่มีการอ้างอิงจะจางลง - คำแนะนำเครื่องมือเอกสารประกอบของพร็อพเพอร์ตี้ Soong: วางตัวชี้เหนือ
พร็อพเพอร์ตี้ใดก็ได้ในไฟล์
Android.bpซึ่งรวมถึง พร็อพเพอร์ตี้ที่มีขอบเขตสถาปัตยกรรมหรือเป้าหมายภายใต้target,archและmultilibเพื่อดู ซิกเนเจอร์ประเภท Soong และเอกสารประกอบแบบอินไลน์

การจัดการอุปกรณ์เสมือน Cuttlefish และการมิเรอร์แบบหลายหน้าจอ
ASfP มีปลั๊กอิน Cuttlefish ในตัวสำหรับนักพัฒนาแพลตฟอร์ม, Android Automotive OS (AAOS) และ Software-Defined Vehicle (SDV) ที่ทำงานกับ อุปกรณ์เสมือน Cuttlefish ที่สร้างขึ้นในเครื่อง
- การตั้งค่าอุปกรณ์หลายเครื่องในโปรแกรมจัดการอุปกรณ์: สร้างและจัดการการตั้งค่าอุปกรณ์เสมือนจริง Cuttlefish หลายเครื่องใน โปรแกรมจัดการอุปกรณ์ โดยใช้ AOSP ในเครื่อง (
$ANDROID_BUILD_TOPและ$ANDROID_PRODUCT_OUT) - การมิเรอร์การแสดงผลแบบหลายหน้าจอในหน้าต่างเครื่องมือ Cuttlefish: เปิด View > Tool Windows > Cuttlefish เพื่อใช้การมิเรอร์การแสดงผลแบบหลายหน้าจอของ Cuttlefish ในตัว เพื่อให้คุณดูและโต้ตอบกับการแสดงผลยานยนต์หลายรายการพร้อมกันสำหรับ เวิร์กโฟลว์ AAOS และ SDV
