โดยค่าเริ่มต้น Flag การเปิดตัวฟีเจอร์ทั้งหมดจะเป็น READ_WRITE
และตั้งค่าเป็น DISABLED
คุณต้องลบล้างค่าเริ่มต้นที่ใช้ในบิลด์โดยสร้างไฟล์ค่า Flag สำหรับ Flag ก่อนจึงจะทดสอบฟีเจอร์ได้ ในไฟล์ค่า Flag คุณจะต้องตั้งค่าสถานะ (ENABLED
หรือ DISABLED
) และสิทธิ์ (READ_WRITE
หรือ READ_ONLY
) ของ Flag แต่ละรายการ
การกำหนดค่ารุ่นคือไดเรกทอรีที่มีไฟล์ค่า Flag ทั้งหมดสำหรับบิลด์ Android ที่เฉพาะเจาะจง (ซึ่งเปิดใช้และปิดใช้ฟีเจอร์บางอย่าง)
AOSP มาพร้อมกับการกำหนดค่ารุ่นต่างๆ เช่น trunk_staging
ไดเรกทอรีการกําหนดค่ารุ่นจะอยู่ในส่วน
WORKING_DIRECTORY/build/release/aconfig/
เมื่อใช้คําสั่ง lunch
เพื่อเลือกเป้าหมาย คุณจะกําหนดค่าการกําหนดค่ารุ่นสําหรับเป้าหมายด้วย
ตัวอย่างเช่น รายการต่อไปนี้เป็นเป้าหมาย trunk_staging
lunch aosp_cf_x86_64_phone-trunk_staging-userdebug
ระยะเตรียมความพร้อมของ Trunk คือการกำหนดค่ารุ่นสำหรับการพัฒนา เนื่องจาก Google ใช้เพื่อทดสอบฟีเจอร์ก่อนเปิดตัวเวอร์ชันสำหรับผู้ใช้ทั่วไป การกําหนดค่านี้ใช้ Flag READ_WRITE
ส่วนใหญ่ ซึ่งช่วยให้คุณทดสอบโค้ดโดยเปิดหรือปิดใช้ฟีเจอร์ต่างๆ ขณะรันไทม์ได้
ในการเผยแพร่แบบทั่วไป ให้ใช้การกำหนดค่ารุ่นการเผยแพร่ การกําหนดค่ารุ่นส่วนใหญ่จะใช้ Flag READ_ONLY
และแสดงโค้ดทั้งหมดที่เปิดใช้สําหรับรุ่นนั้น
เพิ่ม Flag ลงในการกำหนดค่ารุ่น trunk_staging
หากต้องการทดสอบ Flag ใหม่ ให้เพิ่ม Flag นั้นลงในการกำหนดค่ารุ่น trunk_staging
ดังนี้
- นำทางไปยัง
WORKING_DIRECTORY/build/release/aconfig/trunk_staging/
- สร้างไดเรกทอรีที่มีชื่อแพ็กเกจเดียวกับ Flag เช่น
com.example.android.aconfig.demo.flags
ที่แสดงในประกาศ Flag aconfig สำหรับ Java - ไปที่ไดเรกทอรีใหม่
- ในไดเรกทอรี ให้สร้างไฟล์ค่า Flag ที่รวมชื่อที่ใช้ในไฟล์ประกาศ Flag (
.aconfig
) เช่นmy_static_flag
ที่แสดงในประกาศ Flag aconfig สำหรับ Java เข้ากับ_flag_values.textproto
ชื่อไฟล์ที่ได้จะเหมือนกับmy_static_flag_flag_values.textproto
แก้ไขไฟล์และเพิ่ม
flag_value
คล้ายกับตัวอย่างต่อไปนี้flag_value { package: "com.example.android.aconfig.demo.flags" name: "my_static_flag" state: DISABLED Permission: READ_WRITE }
สถานที่:
package
มีชื่อแพ็กเกจเดียวกับที่ใช้ในการประกาศname
มีชื่อเดียวกับที่ใช้ในประกาศstate
คือENABLED
หรือDISABLED
permission
คือREAD_WRITE
หรือREAD_ONLY
โดยทั่วไปแล้ว ระบบจะตั้งค่าpermission
เป็นREAD_ONLY
สำหรับไฟล์ค่า Flag ที่เป็นส่วนหนึ่งของการกำหนดค่ารุ่น
บันทึกไฟล์และออกจากเครื่องมือแก้ไข
สร้างไฟล์บิลด์ชื่อ
Android.bp
ในไดเรกทอรีเดียวกับไฟล์ค่า Flag ไฟล์นี้ใช้เพื่อรวมไฟล์ค่า Flag ไว้ในบิลด์ในไฟล์
Android.bp
ให้สร้างส่วนaconfig_values
คล้ายกับตัวอย่างต่อไปนี้aconfig_values { name: "aconfig-values-platform_build_release-trunk-staging-com.android.aconfig.test-all", package: "com.android.aconfig.test", srcs: [ "*_flag_values.textproto", ] }
สถานที่:
name
คือชื่อที่ไม่ซ้ำกันของโมดูลการสร้าง Soong Google ใช้รูปแบบของaconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG-NAME-package.name-all
โปรดทราบว่าPATH_TO_RELEASE_CONFIG_DIR
คือbuild/release
package
มีชื่อแพ็กเกจเดียวกับที่ใช้ในการประกาศsrcs
คือรายการไฟล์ค่า Flag ทั้งหมด
บันทึกไฟล์และออกจากเครื่องมือแก้ไข
ไปยังไดเรกทอรีที่อยู่เหนือไดเรกทอรีปัจจุบัน (
cd ..
)แก้ไขไฟล์
Android.bp
ไฟล์บิลด์นี้มีรายการชื่อ (name
) ที่เชื่อมโยงกับไฟล์ค่า Flag แต่ละไฟล์ เพิ่มชื่อที่คุณใช้ในไฟล์บิลด์ก่อนหน้า (ขั้นตอนที่ 8) ลงในรายการนี้บิลด์ Android และเรียกใช้โค้ดใหม่เพื่อให้แน่ใจว่าเปิดใช้ตามการตั้งค่าในไฟล์ค่า Flag