กำหนดค่าแฟล็กการเปิดตัวฟีเจอร์

โดยค่าเริ่มต้น 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 ดังนี้

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

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

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

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

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

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