Mulai 27 Maret 2025, sebaiknya gunakan android-latest-release, bukan aosp-main, untuk mem-build dan berkontribusi pada AOSP. Untuk mengetahui informasi selengkapnya, lihat Perubahan pada AOSP.
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Secara default, semua flag peluncuran fitur adalah READ_WRITE dan disetel ke DISABLED.
Sebelum dapat menguji fitur, Anda harus mengganti nilai default yang digunakan dalam
build dengan membuat file nilai flag untuk flag. Dalam file nilai flag,
Anda menetapkan status flag individual (ENABLED atau DISABLED) dan izin
(READ_WRITE atau READ_ONLY).
Konfigurasi rilis adalah direktori yang berisi semua file nilai flag
untuk build Android tertentu (dengan fitur tertentu diaktifkan dan
dinonaktifkan).
AOSP dikirimkan dengan beberapa konfigurasi rilis, seperti trunk_staging.
Direktori konfigurasi rilis ditemukan di
WORKING_DIRECTORY/build/release/aconfig/.
Saat menggunakan perintah lunch untuk
memilih target, Anda juga
menetapkan konfigurasi rilis untuk target.
Misalnya, berikut adalah target trunk_staging:
Staging trunk adalah konfigurasi rilis pengembangan karena
Google menggunakannya untuk menguji fitur sebelum rilis umum. Konfigurasi ini
sebagian besar
menggunakan flag READ_WRITE yang memungkinkan Anda menguji kode dengan fitur yang diaktifkan atau
dinonaktifkan saat runtime.
Pada rilis umum, gunakan konfigurasi rilis rilis. Konfigurasi rilis
rilis sebagian besar menggunakan tanda READ_ONLY dan mencerminkan semua kode
yang diaktifkan untuk rilis tersebut.
Menambahkan tanda ke konfigurasi rilis trunk_staging
Untuk menguji flag baru, tambahkan ke konfigurasi rilis trunk_staging sebagai
berikut:
Navigasikan ke WORKING_DIRECTORY/build/release/aconfig/trunk_staging/
Buat direktori dengan nama paket yang sama dengan flag Anda, seperti
com.example.android.aconfig.demo.flags yang ditampilkan di
Mendeklarasikan flag aconfig untuk Java.
Buka direktori baru.
Di direktori, buat file nilai flag yang menggabungkan nama yang digunakan dalam
file deklarasi flag (.aconfig), seperti my_static_flag yang ditampilkan dalam
Mendeklarasikan flag aconfig untuk Java
dengan _flag_values.textproto. Nama file yang dihasilkan adalah
my_static_flag_flag_values.textproto.
Edit file dan tambahkan flag_value yang mirip dengan berikut ini:
package berisi nama paket yang sama dengan yang digunakan dalam deklarasi.
name berisi nama yang sama dengan yang digunakan dalam deklarasi.
state adalah ENABLED atau DISABLED.
permission adalah READ_WRITE atau READ_ONLY. Secara umum, permission ditetapkan ke READ_ONLY untuk file nilai tanda yang merupakan bagian dari
konfigurasi rilis.
Simpan file dan keluar dari editor Anda.
Di direktori yang sama dengan file nilai tanda, buat file build bernama
Android.bp. File ini digunakan untuk menyertakan file nilai tanda dalam build.
Di file Android.bp, buat bagian aconfig_values yang mirip dengan:
name adalah nama unik untuk modul build Soong. Google menggunakan
konvensi
aconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG-NAME-package.name-all.
Perhatikan bahwa PATH_TO_RELEASE_CONFIG_DIR adalah
build/release.
package berisi nama paket yang sama dengan yang digunakan dalam deklarasi.
srcs adalah daftar semua file nilai tanda Anda.
Simpan file dan keluar dari editor Anda.
Buka direktori di atas direktori saat ini (cd ..)
Edit file Android.bp. File build ini berisi daftar nama
(name) yang terkait dengan setiap file nilai tanda. Tambahkan nama yang Anda gunakan dalam
file build sebelumnya (langkah 8) ke daftar ini.
Build Android, dan jalankan kode baru Anda untuk memastikan kode tersebut diaktifkan sesuai
setelan dalam file nilai flag.
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-27 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 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."]]