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

Theo mặc định, tất cả cờ khởi chạy 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 sử dụng trong bản dựng bằng cách tạo tệp giá trị cờ cho cờ đó. Trong tệp giá trị cờ, bạn đặt trạng thái của một cờ riêng lẻ (ENABLED hoặc DISABLED) và quyền (READ_WRITE hoặc READ_ONLY).

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 Android cụ thể (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. Bạn có thể tìm thấy các thư mục cấu hình bản phát hành 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 đặt cấu hình phát hành cho mục tiêu đó. Ví dụ: sau đây là mục tiêu trunk_staging:

lunch aosp_cf_x86_64_phone-trunk_staging-userdebug

Staging Trunk là một cấu hình phát hành phát triển vì Google sử dụng cấu hình này để kiểm thử các tính năng trước khi phát hành công khai. 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ã của mình với các tính năng được bật hoặc tắt trong thời gian chạy.

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

Thêm 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ó tên gói giống với cờ của bạn, chẳng hạn như com.example.android.aconfig.demo.flags hiển thị trong phần Khai báo cờ aconfig cho Java.
  3. Chuyển đến thư mục mới.
  4. Trong thư mục, 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 hiển thị trong phần Khai báo cờ aconfig cho Java bằng _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 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 một tên gói được dùng trong phần khai báo.
    • name chứa cùng một tên được dùng trong phần khai báo.
    • stateENABLED hoặc DISABLED.
    • permissionREAD_WRITE hoặc READ_ONLY. Nhìn chung, permission được đặt thành READ_ONLY cho các tệp giá trị cờ thuộc 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 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 duy nhất của mô-đun bản dựng Soong. Google sử dụng quy ước của aconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG-NAME-package.name-all. Lưu ý rằng PATH_TO_RELEASE_CONFIG_DIRbuild/release.
    • package chứa cùng một tên gói được dùng trong phần khai báo.
    • srcs là danh sách tất 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) liên kết với từng tệp giá trị cờ. Thêm tên bạn đã sử 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 rằng mã đó được bật theo chế độ cài đặt trong tệp giá trị cờ.