Google ใช้ Flag การเปิดตัวฟีเจอร์เป็นแนวทางในการทำให้สาขาโค้ดมีเสถียร นอกจากนี้ คุณยังต้องใช้ Flag เหล่านี้สำหรับการมีส่วนร่วมใน AOSP บางประเภทด้วย ก่อนใช้การแจ้งว่าเปิดตัวฟีเจอร์ ให้พิจารณาว่าจำเป็นต้องแจ้งว่าเปิดตัวฟีเจอร์สำหรับการเปลี่ยนแปลงของคุณหรือไม่ และหากจำเป็นต้องใช้ Flag คุณควรระบุประเภท Flag ที่จะใช้
ระบุการใช้งานการแจ้งว่าไม่เหมาะสม
หากต้องการกำหนดว่าควรใช้ Flag การเปิดตัวฟีเจอร์เมื่อใด ให้ทำตามหลักเกณฑ์ต่อไปนี้
หากคุณทำการเปลี่ยนแปลงที่อาจทำให้โค้ดฐาน AOSP ไม่เสถียร เช่น การเพิ่มฟีเจอร์ใหม่หรือการแก้ไขข้อบกพร่องที่ซับซ้อนมาก ให้ใช้ Flag การเปิดตัวฟีเจอร์
ในทางกลับกัน หากคุณกำลังทำการเปลี่ยนแปลงโค้ดที่ไม่เหมาะสมจนทำให้ โค้ดเบสที่ไม่เสถียร เช่น การแก้ไขความคิดเห็น คุณไม่จำเป็นต้องใช้ ธงเปิดตัวฟีเจอร์
ระบุประเภทแฟล็ก
โดยมี 2 ประเภท ได้แก่ แฟล็ก aconfig และแฟล็กการสร้าง
Flag ของ Aconfig
แฟล็ก Aconfig ใช้เพื่อแยกการดำเนินการของโค้ดที่ยังไม่เผยแพร่ออกจาก รหัสที่ปล่อยออกมาในระหว่างการทดสอบและขั้นตอนเผยแพร่ แฟล็ก Aconfig มีดังนี้ อ่านอย่างเดียวหรืออ่านอย่างเดียว:
Flag aconfig แบบอ่าน/เขียนคือตัวแปรบูลีนที่คุณเปิดใช้ (ตั้งค่าเป็น
true
) หรือปิดใช้ (ตั้งค่าเป็นfalse
) ได้ในรันไทม์ ใช้แฟล็กแบบอ่าน-เขียนเพื่อทดสอบ และเผยแพร่การเปลี่ยนแปลงโดยไม่ส่งผลกระทบต่อความเสถียรของ Branch หลักแฟล็ก aconfig แบบอ่านอย่างเดียวเป็นค่าคงที่บูลีนที่คุณเปลี่ยนแปลงไม่ได้ รันไทม์ คุณแปลงแฟล็ก aconfig แบบอ่านอย่างเดียวเป็นแฟล็ก aconfig แบบอ่านอย่างเดียวได้ สำหรับโค้ดที่มีความเสถียรและพร้อมเผยแพร่
นอกจากนี้ เมื่อมีการตั้งค่าสถานะแบบอ่านอย่างเดียว ทั้งนี้ขึ้นอยู่กับคอมไพเลอร์ที่คุณใช้ ระบบอาจยกเว้นโค้ดที่ไม่มีการเรียกใช้ จากบิลด์ คุณจึงใช้ Flag แบบอ่านอย่างเดียวเพื่อซ่อนโค้ดที่ยังไม่พร้อมเป็นส่วนหนึ่งของรุ่นได้
ตั้งค่าสถานะ
Flag การสร้างคือค่าคงที่ (สตริง) ของเวลาสร้าง และคุณจะเปลี่ยนแปลง Flag เหล่านี้ระหว่างรันไทม์ไม่ได้ ใช้แฟล็กเหล่านี้ในกรณีที่ใช้แฟล็ก aconfig ไม่ได้ เช่น
- คุณมีโค้ดที่คอมไพล์ไว้ล่วงหน้าหรือที่สร้างไว้ล่วงหน้าซึ่งคุณต้องการรวมไว้ในรหัสนั้น งานสร้าง
- คุณต้องการทําการเปลี่ยนแปลงในระบบการสร้าง
- คุณต้องการใส่ Flag ไว้รอบๆ Dependency เพื่อจัดการขนาดโค้ด