اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release بدلاً من aosp-main لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
تكون جميع علامات إطلاق الميزات READ_WRITE بشكل تلقائي ويتم ضبطها على DISABLED.
قبل أن تتمكّن من اختبار إحدى الميزات، عليك إلغاء القيمة التلقائية المستخدَمة في الإصدار عن طريق إنشاء ملف قيم العلامة للعلامة. في ملف قيم العلامات،
يمكنك ضبط حالة علامة فردية (ENABLED أو DISABLED) وأذون
(READ_WRITE أو READ_ONLY).
إعداد الإصدار هو دليل يحتوي على جميع قيم ملفّات العلامة لإصدار معيّن من Android (مع تفعيل ميزات معيّنة وعدم تفعيلها).
يتم شحن AOSP مع بعض إعدادات الإصدار، مثل trunk_staging.
يمكن العثور على أدلة إعدادات الإصدار ضمن
WORKING_DIRECTORY/build/release/aconfig/.
عند استخدام الأمر lunch لاختيار هدف، يتم أيضًا
ضبط إعدادات الإصدار للهدف.
على سبيل المثال، يلي trunk_staging المستهدَف:
مرحلة وضع الإصدار في الإصدار العلني هي إعداد إصدار التطوير لأنّ Google تستخدمه لاختبار الميزات قبل طرحها للجمهور العام. يستخدم هذا الإعداد
READ_WRITE علامات في الغالب تتيح لك اختبار الرمز البرمجي مع الميزات مفعّلة أو
متوقفة أثناء التشغيل.
في الإصدار العام، استخدِم إعدادات الإصدار العلني. يستخدم إصدار
إعداد الإصدار في الغالب علامات READ_ONLY ويعرض كل الرمز المبرمَج
المفعَّل لهذا الإصدار.
إضافة علامة إلى إعدادات الإصدار trunk_staging
لاختبار علامة جديدة، أضِفها إلى إعدادات إصدار trunk_staging على النحو التالي:
الانتقال إلى WORKING_DIRECTORY/build/release/aconfig/trunk_staging/
أنشئ دليلاً يحمل اسم الحزمة نفسه المستخدَم في العلامة، مثل
com.example.android.aconfig.demo.flags كما هو موضّح في
تحديد علامة aconfig لبرنامج Java.
انتقِل إلى الدليل الجديد.
في الدليل، أنشئ ملفًا لقيم العلامات يجمع بين الاسم المستخدَم فيملف تعريف العلامة (.aconfig)، مثل my_static_flag المعروض في تعريف علامة aconfig لبرنامج Java
مع _flag_values.textproto. اسم الملف الناتج هو
my_static_flag_flag_values.textproto.
name هو الاسم الفريد لمكوّن إنشاء Soong. تستخدم Google
الاصطلاح التالي:
aconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG-NAME-package.name-all.
يُرجى العِلم أنّ PATH_TO_RELEASE_CONFIG_DIR هو
build/release.
يحتوي package على اسم الحزمة نفسه المستخدَم في البيان.
srcs هي قائمة بجميع ملفات قيم العلامات.
احفظ الملف واخرج من المحرِّر.
انتقِل إلى الدليل أعلى الدليل الحالي (cd ..).
عدِّل ملف Android.bp. يحتوي ملف الإنشاء هذا على قائمة بالأسماء
(name) المرتبطة بكل ملف من ملفات قيم العلامات. أضِف الاسم الذي استخدمته في
ملف الإصدار السابق (الخطوة 8) إلى هذه القائمة.
أنشئ نظام التشغيل Android وشغِّل الرمز البرمجي الجديد للتأكّد من تفعيله وفقًا للإعداد في ملف قيم العلامة.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],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."]]