Kể từ ngày 27 tháng 3 năm 2025, bạn nên sử dụng android-latest-release thay vì aosp-main để xây dựng và đóng góp cho AOSP. Để biết thêm thông tin, hãy xem phần Thay đổi đối với AOSP.
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
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:
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:
Điều hướng đến WORKING_DIRECTORY/build/release/aconfig/trunk_staging/
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.
Chuyển đến thư mục mới.
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.
Chỉnh sửa tệp và thêm flag_value tương tự như sau:
name là tên duy nhất cho 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_DIR là build/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.
Lưu tệp và thoát trình chỉnh sửa.
Chuyển đến thư mục phía trên thư mục hiện tại (cd ..)
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.
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ờ.
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-07-27 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-07-27 UTC."],[],[],null,["# Set feature launch flag values\n\nBy default, all feature launch flags are `READ_WRITE` and set to `DISABLED`.\nBefore you can test a feature, you must override the default value used in the\nbuild by creating a *flag values file* for the flag. In a flag values file,\nyou set a individual flag's state (`ENABLED` or `DISABLED`) and permission\n(`READ_WRITE` or `READ_ONLY`).\n\nA *release configuration* is a directory that contains all of the flag values\nfiles for a specific build of Android (with certain features enabled and\ndisabled).\n\nAOSP ships with a few release configurations, such as `trunk_staging`.\nRelease configuration directories are found under\n\u003cvar translate=\"no\"\u003eWORKING_DIRECTORY\u003c/var\u003e`/build/release/aconfig/`.\n| **Note:** This page shows you how to add a flag to an existing release configuration as a means of teaching how release configurations work. The release configurations included in AOSP are defined by Google. Google doesn't accept contributions to update or change a configuration's feature release flags. Instead, you can define your own custom release configurations including default flag values in your forks of AOSP. For more information on release configurations, see [Set feature launch flag values](/docs/setup/build/feature-flagging/set-values).\n\nWhen you use the `lunch` command to\n[choose a target](/docs/setup/build/building#choose-a-target), you're\nalso setting the release configuration for the target.\nFor example, the\nfollowing is a `trunk_staging` target: \n\n lunch aosp_cf_x86_64_only_phone-trunk_staging-userdebug\n\nTrunk staging is a *development release configuration* because\nGoogle uses it to test features before general release. This configuration\nuses\nmostly `READ_WRITE` flags that let you test your code with features enabled or\ndisabled at runtime.\n\nAt general release, use a *release release configuration* . A release\nrelease configuration mostly uses `READ_ONLY` flags and reflects all of the code\nenabled for that release.\n\nAdd a flag to the trunk_staging release configuration\n-----------------------------------------------------\n\nTo test a new flag, add it to the `trunk_staging` release configuration as\nfollows:\n\n1. Navigate to \u003cvar translate=\"no\"\u003eWORKING_DIRECTORY\u003c/var\u003e`/build/release/aconfig/trunk_staging/`\n2. Create a directory with the same package name as your flag, such as `com.example.android.aconfig.demo.flags` shown in [Declare an aconfig flag for Java](/docs/setup/build/feature-flagging/declare-flag).\n3. Navigate to the new directory.\n4. In the directory, create a flag values file that combines the name used in the flag declaration (`.aconfig`) file, such as `my_static_flag` shown in [Declare an aconfig flag for Java](/docs/setup/build/feature-flagging/declare-flag) with `_flag_values.textproto`. The resulting filename is `my_static_flag_flag_values.textproto`.\n5. Edit the file and add a `flag_value` similar to the following:\n\n flag_value {\n package: \"com.example.android.aconfig.demo.flags\"\n name: \"my_static_flag\"\n state: DISABLED\n Permission: READ_WRITE\n }\n\n Where:\n - `package` contains the same package name used in the declaration.\n - `name` contains the same name used in the declaration.\n - `state` is either `ENABLED` or `DISABLED`.\n - `permission` is either `READ_WRITE` or `READ_ONLY`. Generally, the `permission` is set to `READ_ONLY` for flag values files that are part of a release configuration.\n6. Save the file and exit your editor.\n\n7. In the same directory as the flag values file, create a build file called\n `Android.bp`. This file is used to include the flag values file in the build.\n\n8. In the `Android.bp` file, create a `aconfig_values` section similar to:\n\n aconfig_values {\n name: \"aconfig-values-platform_build_release-trunk-staging-com.android.aconfig.test-all\",\n package: \"com.android.aconfig.test\",\n srcs: [\n \"*_flag_values.textproto\",\n ]\n }\n\n Where:\n - `name` is the unique name for the Soong build module. Google uses the convention of `aconfig-values-platform_`\u003cvar translate=\"no\"\u003ePATH_TO_RELEASE_CONFIG_DIR\u003c/var\u003e`-`\u003cvar translate=\"no\"\u003eCONFIG-NAME\u003c/var\u003e`-`\u003cvar translate=\"no\"\u003epackage.name\u003c/var\u003e`-all`. Note that \u003cvar translate=\"no\"\u003ePATH_TO_RELEASE_CONFIG_DIR\u003c/var\u003e is `build/release`.\n - `package` contains the same package name used in the declaration.\n - `srcs` is a list of all of your flag values files.\n9. Save the file and exit your editor.\n\n10. Navigate to the directory above the current directory (`cd ..`)\n\n11. Edit the `Android.bp` file. This build file contains a list of the names\n (`name`) associated with each flag values file. Add the name you used in the\n previous build file (step 8) to this list.\n\n12. Build Android, and run your new code to ensure that it's enabled per the\n setting in the flag values file."]]