ระบุประเภทและการใช้งาน Flag

Google ใช้ Flag การเปิดตัวฟีเจอร์เป็นแนวทางในการทำให้สาขาโค้ดมีเสถียร นอกจากนี้ คุณยังต้องใช้ Flag เหล่านี้สำหรับการมีส่วนร่วมใน AOSP บางประเภทด้วย ก่อนใช้การแจ้งว่าเปิดตัวฟีเจอร์ ให้พิจารณาว่าจำเป็นต้องแจ้งว่าเปิดตัวฟีเจอร์สำหรับการเปลี่ยนแปลงหรือไม่ และหากจำเป็นต้องใช้การแจ้งว่าไม่เหมาะสม คุณควรระบุประเภทการแจ้งว่าไม่เหมาะสมที่จะใช้

กำหนดการใช้ Flag

หากต้องการกำหนดว่าควรใช้ Flag การเปิดตัวฟีเจอร์เมื่อใด ให้ทำตามหลักเกณฑ์ต่อไปนี้

  • หากคุณทำการเปลี่ยนแปลงที่อาจทำให้โค้ดฐาน AOSP ไม่เสถียร เช่น การเพิ่มฟีเจอร์ใหม่หรือการแก้ไขข้อบกพร่องที่ซับซ้อนมาก ให้ใช้ Flag การเปิดตัวฟีเจอร์

  • ในทางกลับกัน หากคุณทำการเปลี่ยนแปลงโค้ดที่ไม่น่าจะทําให้ฐานโค้ดไม่เสถียร เช่น การแก้ไขความคิดเห็น คุณก็ไม่จําเป็นต้องใช้ Flag การเปิดตัวฟีเจอร์

ระบุประเภทธง

โดยมี 2 ประเภท ได้แก่ flag aconfig และ flag build

Flag ของ Aconfig

Flag Aconfig ใช้เพื่อแยกการเรียกใช้โค้ดที่ยังไม่ได้เผยแพร่ออกจากโค้ดที่เผยแพร่แล้วในระหว่างกระบวนการทดสอบและการเผยแพร่ Flag ของ Aconfig อาจเป็นแบบอ่าน/เขียนหรืออ่านอย่างเดียว ดังนี้

  • Flag aconfig แบบอ่าน/เขียนคือตัวแปรบูลีนที่คุณเปิดใช้ (ตั้งค่าเป็น true) หรือปิดใช้ (ตั้งค่าเป็น false) ได้ในรันไทม์ ใช้ Flag แบบอ่าน/เขียนเพื่อทดสอบและเผยแพร่การเปลี่ยนแปลงโดยไม่ส่งผลต่อความเสถียรของสาขาหลัก

  • Flag aconfig แบบอ่านอย่างเดียวคือค่าคงที่บูลีนที่คุณไม่สามารถเปลี่ยนแปลงขณะรันไทม์ คุณสามารถแปลง Flag aconfig แบบอ่าน/เขียนเป็น Flag aconfig แบบอ่านอย่างเดียวสำหรับโค้ดที่เสถียรและพร้อมเผยแพร่

    นอกจากนี้ เมื่อใช้ Flag แบบอ่านอย่างเดียว ระบบอาจยกเว้นโค้ดที่ไม่ได้ดำเนินการออกจากบิลด์ ทั้งนี้ขึ้นอยู่กับคอมไพเลอร์ที่คุณใช้ คุณจึงใช้ Flag แบบอ่านอย่างเดียวเพื่อซ่อนโค้ดที่ยังไม่พร้อมเป็นส่วนหนึ่งของรุ่นได้

สร้าง Flag

Flag การสร้างคือค่าคงที่ (สตริง) ของเวลาสร้าง และคุณจะเปลี่ยนแปลง Flag เหล่านี้ระหว่างรันไทม์ไม่ได้ ใช้แฟล็กเหล่านี้ในกรณีที่ใช้แฟล็ก aconfig ไม่ได้ เช่น

  • คุณมีโค้ดที่คอมไพล์ไว้ล่วงหน้าหรือสร้างไว้ล่วงหน้าที่ต้องการรวมไว้ในบิลด์
  • คุณต้องการทําการเปลี่ยนแปลงในระบบการสร้าง
  • คุณต้องการใส่ Flag ไว้รอบๆ Dependency เพื่อจัดการขนาดโค้ด