โปรเจ็กต์ใน Android Studio for Platform (ASfP) มีทุกอย่างที่กำหนดพื้นที่ทํางานสําหรับฐานของโค้ด AOSP ตั้งแต่ซอร์สโค้ดและชิ้นงานไปจนถึงโค้ดทดสอบและการกำหนดค่าบิลด์ Soong
ASfP สร้างโปรเจ็กต์แพลตฟอร์มขนาดใหญ่และกู้คืนโมเดลโปรเจ็กต์จากสแนปชอตที่แคชไว้เมื่อเริ่มต้นระบบ โดยสร้างขึ้นบนโมเดลพื้นที่ทำงานของ IntelliJ
เนื้อหา
ภายในไดเรกทอรี out/ และไฟล์ gen ที่สร้างขึ้นจะได้รับการยกเว้นจากขอบเขตการค้นหาของโปรเจ็กต์
เพื่อให้การนำทางสัญลักษณ์และไฟล์ยังคงรวดเร็ว
การกำหนดค่าโปรเจ็กต์ (.asfp-project)
ไฟล์ .asfp-project YAML ซึ่งอยู่ในรูทของไดเรกทอรีโปรเจ็กต์
จะควบคุมการกำหนดค่าโปรเจ็กต์ ASfP ไฟล์นี้จะกำหนดว่าไดเรกทอรี
โมดูล Soong ภาษา และแฟล็กการสร้างใดบ้างที่จะรวมไว้ในพื้นที่ทำงาน
คุณเปิดการกำหนดค่าโปรเจ็กต์ได้ทุกเมื่อโดยใช้ตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้
- เลือก ASfP > โปรเจ็กต์ > เปิดการกำหนดค่าจากเมนูหลัก
- ดับเบิลคลิก
.asfp-projectในรูทของหน้าต่างเครื่องมือโปรเจ็กต์ - คลิกเปิด Config ในแถบเครื่องมือของหน้าต่างเครื่องมือ Soong
หลังจากแก้ไข .asfp-project แล้ว ให้เรียกใช้การซิงค์โปรเจ็กต์เพื่อให้การเปลี่ยนแปลงมีผล
เทมเพลตโปรเจ็กต์ที่แชร์ได้ (ส่งออกและนำเข้า)
ทีมที่ทำงานในระบบย่อยเดียวกัน (เช่น SystemUI, การตั้งค่า, 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 (รวมถึงการซิงค์ บิลด์ในแถบแสดงข้อผิดพลาด และการกำหนดค่าการเรียกใช้)
build_config:
flags:
- -j64
env:
SOONG_PARTIAL_COMPILE: true
SOONG_ALLOW_MISSING_DEPENDENCIES: true
โหมดการซิงค์และหน้าต่างเครื่องมือ Soong
ASfP มีหลายวิธีในการซิงค์โปรเจ็กต์ IDE กับการชำระเงิน AOSP ขึ้นอยู่กับความต้องการของเวิร์กโฟลว์ เข้าถึงการดำเนินการเหล่านี้ได้จากเมนู ASfP > Sync หรือหน้าต่างเครื่องมือ Soong
- ซิงค์โปรเจ็กต์: วิเคราะห์ไดเรกทอรีและโมดูลที่กำหนดค่าไว้ แล้วอัปเดตการจัดทำดัชนีและการอ้างอิงของ IDE
- การซิงค์บางส่วน: ซิงค์เฉพาะชุดย่อยของโมดูลหรือไดเรกทอรีที่กำหนดเป้าหมาย จึงช่วยประหยัดเวลาเมื่อทำงานในพื้นที่ที่แปลแล้วของโครงสร้าง
- การซิงค์แบบไม่ต้องบิลด์: รีเฟรชโครงสร้างโปรเจ็กต์ IDE และรูทแหล่งที่มาโดยไม่ต้อง เรียกใช้ขั้นตอนการบิลด์ Soong ซึ่งมีประโยชน์เมื่อคุณเพิ่มหรือย้ายไฟล์แหล่งที่มา หรือ บิลด์จากเทอร์มินัลแล้ว
- ซิงค์และสร้างแบบเต็ม: รวมการซิงค์โปรเจ็กต์กับการสร้าง Soong แบบเต็มในขั้นตอนเดียว
หน้าต่างเครื่องมือ Soong (View > Tool Windows > Soong) จะแสดงตัวบ่งชี้สถานะแบบเรียลไทม์ สำหรับแต่ละโหนดของงานซิงค์ ปุ่มสร้างที่เข้าถึงได้อย่างรวดเร็ว และการเรียกใช้คำสั่ง Soong
การสร้าง การติดตั้งใช้งาน และการนำทางในเอดิเตอร์ Android.bp
ASfP รองรับโปรแกรมแก้ไขที่ผสานรวมสำหรับไฟล์ Android.bp ดังนี้
สร้าง เรียกใช้ และแก้ไขข้อบกพร่องของเป้าหมายจากกัตเตอร์
เปิดไฟล์ Android.bp ในโปรเจ็กต์เพื่อสร้างหรือเปิดใช้เป้าหมายจากไอคอนในแถบด้านข้าง 2 รายการ
- ไอคอนสร้าง (โมดูลที่มีชื่อทั้งหมด): ปรากฏข้าง
name:ในทุกโมดูลที่มีชื่อ (cc_library_shared,java_library,rust_binary,android_appและเป้าหมายการทดสอบ) เพื่อสร้างเป้าหมาย Soong นั้น (สร้าง "<โมดูล>") - ไอคอนเรียกใช้หรือแก้ไขข้อบกพร่อง (
*_test,*_test_hostและandroid_app): คลิก เรียกใช้ข้างโมดูลทดสอบหรือประกาศandroid_appเพื่อเรียกใช้หรือ แก้ไขข้อบกพร่องของโมดูล โมดูลandroid_testจะแก้ไขข้อบกพร่องผ่านatestและ โมดูลcc_test*และrust_test*จะเปิดตัวภายใต้ LLDB ในตัว

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

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

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) และยานพาหนะที่กำหนดโดยซอฟต์แวร์ (SDV) ที่ทำงานกับอุปกรณ์เสมือนจริง Cuttlefish ที่สร้างขึ้นในเครื่อง
- การตั้งค่าอุปกรณ์หลายเครื่องในโปรแกรมจัดการอุปกรณ์: สร้างและจัดการการตั้งค่าอุปกรณ์เสมือนจริง Cuttlefish หลายเครื่องใน โปรแกรมจัดการอุปกรณ์ โดยใช้การชำระเงิน AOSP ในเครื่อง (
$ANDROID_BUILD_TOPและ$ANDROID_PRODUCT_OUT) - การมิเรอร์การแสดงผลแบบหลายหน้าจอในหน้าต่างเครื่องมือ Cuttlefish: เปิด ดู > หน้าต่างเครื่องมือ > Cuttlefish เพื่อมิเรอร์การแสดงผลแบบหลายหน้าจอของ Cuttlefish ในตัวเพื่อให้คุณดูและโต้ตอบกับจอแสดงผลยานยนต์หลายจอพร้อมกันสำหรับเวิร์กโฟลว์ AAOS และ SDV
