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