ตั้งค่าสถานะการเปิดตัวฟีเจอร์

โดยค่าเริ่มต้น ฟีเจอร์แฟล็กทั้งหมดจะ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 ใช้การกำหนดค่านี้เพื่อทดสอบฟีเจอร์ก่อนที่จะเปิดตัวโดยทั่วไป การกำหนดค่านี้ ใช้ ส่วนใหญ่เป็นREAD_WRITE แฟล็กที่ช่วยให้คุณทดสอบโค้ดโดยเปิดใช้หรือ ปิดใช้ฟีเจอร์ในขณะรันไทม์ได้

เมื่อเปิดตัวทั่วไป ให้ใช้การกำหนดค่าการเผยแพร่ การกำหนดค่ารุ่น ส่วนใหญ่ใช้READ_ONLYแฟล็กและแสดงโค้ดทั้งหมด ที่เปิดใช้สำหรับรุ่นนั้น

เพิ่ม Flag ในการกำหนดค่ารุ่น trunk_staging

หากต้องการทดสอบฟีเจอร์ใหม่ ให้เพิ่มฟีเจอร์นั้นลงในtrunk_stagingการกำหนดค่ารุ่นตาม นี้

  1. นำทางไปยัง WORKING_DIRECTORY/build/release/aconfig/trunk_staging/
  2. สร้างไดเรกทอรีที่มีชื่อแพ็กเกจเดียวกับฟีเจอร์แฟลก เช่น com.example.android.aconfig.demo.flags ที่แสดงใน ประกาศฟีเจอร์แฟลก aconfig สำหรับ Java
  3. ไปที่ไดเรกทอรีใหม่
  4. ในไดเรกทอรี ให้สร้างไฟล์ค่าแฟล็กที่รวมชื่อที่ใช้ในไฟล์ประกาศแฟล็ก (.aconfig) เช่น my_static_flag ที่แสดงในประกาศแฟล็ก aconfig สำหรับ Java ด้วย _flag_values.textproto ชื่อไฟล์ที่ได้คือ my_static_flag_flag_values.textproto
  5. แก้ไขไฟล์และเพิ่ม 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 สำหรับไฟล์ค่าแฟล็กที่เป็นส่วนหนึ่งของการกำหนดค่ารุ่น
  6. บันทึกไฟล์และออกจากโปรแกรมแก้ไข

  7. ในไดเรกทอรีเดียวกับไฟล์ค่าแฟล็ก ให้สร้างไฟล์บิลด์ชื่อ Android.bp ไฟล์นี้ใช้เพื่อรวมไฟล์ค่าแฟล็กในการสร้าง

  8. ใน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 is build/release
    • package มีชื่อแพ็กเกจเดียวกันกับที่ใช้ในการประกาศ
    • srcs คือรายการไฟล์ค่าฟีเจอร์แฟล็กทั้งหมด
  9. บันทึกไฟล์และออกจากโปรแกรมแก้ไข

  10. ไปยังไดเรกทอรีเหนือไดเรกทอรีปัจจุบัน (cd ..)

  11. แก้ไขไฟล์ Android.bp ไฟล์บิลด์นี้มีรายการชื่อ (name) ที่เชื่อมโยงกับไฟล์ค่าของแต่ละแฟล็ก เพิ่มชื่อที่คุณใช้ใน ไฟล์บิลด์ก่อนหน้า (ขั้นตอนที่ 8) ลงในรายการนี้

  12. สร้าง Android และเรียกใช้โค้ดใหม่เพื่อให้แน่ใจว่าได้เปิดใช้ตาม การตั้งค่าในไฟล์ค่าแฟล็ก