Google sử dụng cờ khởi chạy tính năng như một phương pháp để đảm bảo các nhánh mã ổn định. Những cờ này cũng là bắt buộc đối với một số loại đóng góp cho AOSP. Trước khi triển khai việc gắn cờ khi khởi chạy tính năng, hãy xác định xem thay đổi của bạn có cần phải gắn cờ hay không. Và nếu cần một cờ, bạn nên xác định loại cờ sẽ sử dụng.
Xác định mức sử dụng cờ
Để xác định thời điểm sử dụng cờ phát hành 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 một thay đổi có thể khiến cơ sở mã AOSP không ổn định, chẳng hạn như thêm một tính năng mới hoặc khắc phục một lỗi đặc biệt phức tạp, hãy sử dụng cờ khởi chạy tính năng.
Ngược lại, nếu bạn thay đổi mã không phù hợp để khiến cơ sở mã trở nê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ờ khởi chạy tính năng.
Xác định loại cờ
Có hai loại cờ: cờ aconfig và cờ bản dựng.
Cờ Aconfig
Cờ Aconfig được dùng để tách riêng 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à chế độ đọc-ghi hoặc chỉ đọc:
Cờ cấu hình đọc-ghi là các biến boolean mà bạn có thể bật (đặt thành
true
) hoặc tắt (được đặt thànhfalse
) trong thời gian chạ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 độ ổ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ó thể đọ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 bạn đang sử dụng, khi sử dụng cờ chỉ có thể đọ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 đưa vào bản phát hành.
Cờ dựng
Cờ bản dựng là hằng số thời gian xây dựng (chuỗi) và bạn không thể thay đổi các hằng số này trong thời gian chạy. Hãy sử dụng những 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 tạo sẵn mà bạn muốn đưa vào bản dựng.
- Bạn muốn thay đổi 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ã.