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