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

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

กำหนดการใช้แฟล็ก

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

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

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

กำหนดประเภทการแจ้งว่าไม่เหมาะสม

โดยมี 2 ประเภท ได้แก่ แฟล็ก aconfig และแฟล็กบิลด์

แฟล็ก Aconfig

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

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

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

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

สร้างแฟล็ก

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

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