Đặt giá trị cờ phát hành tính năng

Theo mặc định, tất cả cờ ra mắt tính năng đều là READ_WRITE và được đặt thành DISABLED. Trước khi có thể kiểm thử một tính năng, bạn phải ghi đè giá trị mặc định được dùng trong bản dựng bằng cách tạo một tệp giá trị cờ cho cờ. Trong tệp giá trị cờ, bạn đặt trạng thái (ENABLED hoặc DISABLED) và quyền (READ_WRITE hoặc READ_ONLY) của từng cờ.

Cấu hình phát hành là một thư mục chứa tất cả các tệp giá trị cờ cho một bản dựng cụ thể của Android (với một số tính năng được bật và tắt).

AOSP đi kèm với một số cấu hình phát hành, chẳng hạn như trunk_staging. Các thư mục cấu hình bản phát hành nằm trong WORKING_DIRECTORY/build/release/aconfig/.

Khi sử dụng lệnh lunch để chọn một mục tiêu, bạn cũng đang thiết lập cấu hình phát hành cho mục tiêu đó. Ví dụ: sau đây là một mục tiêu trunk_staging:

lunch aosp_cf_x86_64_only_phone-trunk_staging-userdebug

Phát hành theo giai đoạn là một cấu hình phát hành để phát triển vì Google dùng cấu hình này để kiểm thử các tính năng trước khi phát hành rộng rãi. Cấu hình này chủ yếu sử dụng các cờ READ_WRITE cho phép bạn kiểm thử mã khi các tính năng được bật hoặc tắt trong thời gian chạy.

Khi phát hành công khai, hãy sử dụng cấu hình bản phát hành. Cấu hình phát hành thường sử dụng các cờ READ_ONLY và phản ánh tất cả mã được bật cho bản phát hành đó.

Thêm một cờ vào cấu hình phát hành trunk_staging

Để kiểm thử một cờ mới, hãy thêm cờ đó vào cấu hình phát hành trunk_staging như sau:

  1. Điều hướng đến WORKING_DIRECTORY/build/release/aconfig/trunk_staging/
  2. Tạo một thư mục có cùng tên gói với cờ của bạn, chẳng hạn như com.example.android.aconfig.demo.flags xuất hiện trong phần Khai báo cờ aconfig cho Java.
  3. Chuyển đến thư mục mới.
  4. Trong thư mục này, hãy tạo một tệp giá trị cờ kết hợp tên được dùng trong tệp khai báo cờ (.aconfig), chẳng hạn như my_static_flag xuất hiện trong phần Khai báo cờ aconfig cho Java với _flag_values.textproto. Tên tệp kết quả là my_static_flag_flag_values.textproto.
  5. Chỉnh sửa tệp và thêm một flag_value tương tự như sau:

    flag_value {
      package: "com.example.android.aconfig.demo.flags"
      name: "my_static_flag"
      state: DISABLED
      Permission: READ_WRITE
    }
    

    Trong trường hợp:

    • package chứa cùng tên gói được dùng trong khai báo.
    • name chứa cùng tên được dùng trong khai báo.
    • stateENABLED hoặc DISABLED.
    • permissionREAD_WRITE hoặc READ_ONLY. Thông thường, permission được đặt thành READ_ONLY cho các tệp giá trị cờ nằm trong cấu hình phát hành.
  6. Lưu tệp và thoát trình chỉnh sửa.

  7. Trong cùng thư mục với tệp giá trị cờ, hãy tạo một tệp bản dựng có tên là Android.bp. Tệp này được dùng để đưa tệp giá trị cờ vào bản dựng.

  8. Trong tệp Android.bp, hãy tạo một phần aconfig_values tương tự như:

    aconfig_values {
      name: "aconfig-values-platform_build_release-trunk-staging-com.android.aconfig.test-all",
      package: "com.android.aconfig.test",
      srcs: [
        "*_flag_values.textproto",
      ]
    }
    

    Trong trường hợp:

    • name là tên riêng biệt của mô-đun bản dựng Soong. Google sử dụng quy ước aconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG-NAME-package.name-all. Xin lưu ý rằng PATH_TO_RELEASE_CONFIG_DIRbuild/release.
    • package chứa cùng tên gói được dùng trong khai báo.
    • srcs là danh sách tất cả các tệp giá trị cờ của bạn.
  9. Lưu tệp và thoát trình chỉnh sửa.

  10. Chuyển đến thư mục phía trên thư mục hiện tại (cd ..)

  11. Chỉnh sửa tệp Android.bp. Tệp bản dựng này chứa danh sách tên (name) được liên kết với từng tệp giá trị cờ. Thêm tên mà bạn đã dùng trong tệp bản dựng trước đó (bước 8) vào danh sách này.

  12. Tạo Android và chạy mã mới để đảm bảo mã được bật theo chế độ cài đặt trong tệp giá trị cờ.