27 Mart 2025'ten itibaren AOSP'yi derlemek ve AOSP'ye katkıda bulunmak için aosp-main yerine android-latest-release kullanmanızı öneririz. Daha fazla bilgi için AOSP'de yapılan değişiklikler başlıklı makaleyi inceleyin.
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Varsayılan olarak tüm özellik lansmanı işaretleri READ_WRITE ve DISABLED olarak ayarlanır.
Bir özelliği test edebilmek için işaret için bir işaret değerleri dosyası oluşturarak derlemede kullanılan varsayılan değeri geçersiz kılmanız gerekir. İşaret değerleri dosyasında, her bir işaretin durumunu (ENABLED veya DISABLED) ve iznini (READ_WRITE veya READ_ONLY) ayarlarsınız.
Sürüm yapılandırması, belirli bir Android derlemesinin tüm işaret değeri dosyalarını (belirli özellikler etkin ve devre dışıyken) içeren bir dizindir.
AOSP, trunk_staging gibi birkaç sürüm yapılandırmasıyla birlikte gönderilir.
Sürüm yapılandırma dizinleri WORKING_DIRECTORY/build/release/aconfig/ altında bulunur.
Hedef seçmek için lunch komutunu kullandığınızda hedefin sürüm yapılandırmasını da ayarlarsınız.
Örneğin, aşağıdakiler trunk_staging hedefidir:
Google, özellikleri genel sürümden önce test etmek için kullandığından ana dalda bekletme, geliştirme sürümü yapılandırması olarak kabul edilir. Bu yapılandırma, çoğunlukla kodunuzu çalışma zamanında etkin veya devre dışı özelliklerle test etmenize olanak tanıyan READ_WRITE işaretlerini kullanır.
Genel sürümde sürüm yayınlama yapılandırması kullanın. Sürüm yapılandırmaları çoğunlukla READ_ONLY işaretlerini kullanır ve söz konusu sürüm için etkinleştirilen tüm kodu yansıtır.
trunk_staging sürüm yapılandırmasına işaret ekleme
Yeni bir işareti test etmek için aşağıdaki gibi trunk_staging sürüm yapılandırmasına ekleyin:
İşaretiniz ile aynı paket adına sahip bir dizin oluşturun (ör. Java için aconfig işareti tanımlama bölümünde gösterilen com.example.android.aconfig.demo.flags).
Yeni dizine gidin.
Dizinde, işaret beyanında (.aconfig) kullanılan adı (ör. Java için aconfig işareti tanımlama bölümünde gösterilen my_static_flag) _flag_values.textproto ile birleştiren bir işaret değerleri dosyası oluşturun. Elde edilen dosya adı my_static_flag_flag_values.textproto olur.
Dosyayı düzenleyin ve aşağıdakine benzer bir flag_value ekleyin:
package, beyannamede kullanılan paket adını içerir.
name, beyanda kullanılan adla aynı olmalıdır.
state, ENABLED veya DISABLED değerini alır.
permission, READ_WRITE veya READ_ONLY değerini alır. Genellikle, bir sürüm yapılandırmasının parçası olan işaret değeri dosyaları için permission, READ_ONLY olarak ayarlanır.
Dosyayı kaydedip düzenleyicinizden çıkın.
İşaret değerleri dosyasıyla aynı dizinde Android.bp adlı bir derleme dosyası oluşturun. Bu dosya, işaret değerleri dosyasını derlemeye dahil etmek için kullanılır.
Android.bp dosyasında aşağıdakine benzer bir aconfig_values bölümü oluşturun:
name, Soong derleme modülünün benzersiz adıdır. Google, aconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG-NAME-package.name-all kuralını kullanır.
PATH_TO_RELEASE_CONFIG_DIR değerinin build/release olduğunu unutmayın.
package, beyannamede kullanılan paket adını içerir.
srcs, tüm işaret değeri dosyalarınızın listesidir.
Dosyayı kaydedip düzenleyicinizden çıkın.
Geçerli dizinin üstündeki dizine gidin (cd ..)
Android.bp dosyasını düzenleyin. Bu derleme dosyası, her işaret değerleri dosyasıyla ilişkili adların (name) listesini içerir. Önceki derleme dosyasında (8. adım) kullandığınız adı bu listeye ekleyin.
Android'i derleyin ve işaret değerleri dosyasında belirtilen ayarlara göre etkinleştirildiğinden emin olmak için yeni kodunuzu çalıştırın.
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-07-27 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 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."]]