Xác định loại và cách sử dụng cờ

Google sử dụng cờ ra mắt tính năng để đảm bảo các nhánh mã ổn định. Bạn cũng cần có các cờ này cho một số loại đóng góp nhất định cho AOSP. Trước khi triển khai việc gắn cờ ra mắt tính năng, hãy xác định xem bạn có cần cờ cho thay đổi của mình hay không. Và nếu cần cờ, bạn nên xác định loại cờ cần sử dụng.

Xác định cách sử dụng cờ

Để xác định thời điểm sử dụng cờ ra mắt tính năng, hãy làm theo các nguyên tắc sau:

  • Nếu bạn đang thực hiện thay đổi có thể khiến cơ sở mã AOSP không ổn định (chẳng hạn như thêm tính năng mới hoặc sửa lỗi đặc biệt phức tạp), hãy sử dụng cờ ra mắt tính năng.

  • Ngược lại, nếu bạn đang thực hiện thay đổi mã không có khả năng khiến toàn bộ mã nguồn không ổn định (chẳng hạn như sửa đổi nhận xét), thì bạn không cần sử dụng cờ ra mắt tính năng.

Xác định loại cờ

Có 2 loại cờ: cờ aconfigcờ dựng.

Cờ aconfig

Cờ aconfig được dùng để tách việc thực thi mã chưa phát hành khỏi mã đã phát hành trong quá trình kiểm thử và phát hành. Cờ aconfig có thể là cờ đọc-ghi hoặc chỉ đọc:

  • Cờ aconfig đọc-ghi là các biến boolean mà bạn có thể bật (đặt thành true) hoặc tắt (đặt thành false) trong thời gian chạy. Hãy sử dụng cờ đọc-ghi để kiểm thử và phát hành các thay đổi mà không ảnh hưởng đến tính ổn định của nhánh chính.

  • Cờ aconfig chỉ đọc là các hằng số boolean mà bạn không thể thay đổi trong thời gian chạy. Bạn có thể chuyển đổi cờ aconfig đọc-ghi thành cờ aconfig chỉ đọc cho mã ổn định và sẵn sàng phát hành.

    Ngoài ra, tuỳ thuộc vào trình biên dịch mà bạn đang sử dụng, khi sử dụng cờ chỉ đọc, mã không được thực thi có thể bị loại trừ khỏi bản dựng. Do đó, bạn có thể sử dụng cờ chỉ đọc để ẩn mọi mã chưa sẵn sàng trở thành một phần của bản phát hành.

Cờ dựng

Cờ dựng là các hằng số (chuỗi) trong thời gian dựng và bạn không thể thay đổi các cờ này trong thời gian chạy. Hãy sử dụng các cờ này trong những trường hợp bạn không thể sử dụng cờ aconfig, chẳng hạn như:

  • Bạn có một đoạn mã được biên dịch trước hoặc dựng sẵn mà bạn muốn đưa vào bản dựng.
  • Bạn muốn thay đổi chính hệ thống xây dựng.
  • Bạn muốn đặt cờ xung quanh các phần phụ thuộc để quản lý kích thước mã.