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