به طور پیشفرض، همه پرچمهای راهاندازی ویژگی READ_WRITE هستند و روی DISABLED تنظیم شدهاند. قبل از اینکه بتوانید یک ویژگی را آزمایش کنید، باید با ایجاد یک فایل مقادیر پرچم برای پرچم، مقدار پیش فرض استفاده شده در ساخت را لغو کنید. در فایل مقادیر پرچم، وضعیت یک پرچم ( ENABLED یا DISABLED ) و مجوز ( READ_WRITE یا READ_ONLY ) را تنظیم میکنید.
پیکربندی انتشار ، دایرکتوری است که حاوی تمام فایلهای مقادیر پرچم برای یک بیلد خاص اندروید (با ویژگیهای خاص فعال و غیرفعال) است.
AOSP با چند پیکربندی انتشار، مانند trunk_staging عرضه میشود. دایرکتوری های پیکربندی انتشار در زیر WORKING_DIRECTORY /build/release/aconfig/ یافت می شود.
هنگامی که از دستور lunch برای انتخاب یک هدف استفاده می کنید، پیکربندی انتشار را نیز برای هدف تنظیم می کنید. به عنوان مثال، موارد زیر یک هدف trunk_staging است:
lunch aosp_cf_x86_64_only_phone-trunk_staging-userdebug
Trunk staging یک پیکربندی نسخه توسعه است زیرا Google از آن برای آزمایش ویژگیها قبل از انتشار عمومی استفاده میکند. این پیکربندی عمدتاً از پرچمهای READ_WRITE استفاده میکند که به شما امکان میدهد کد خود را با ویژگیهای فعال یا غیرفعال در زمان اجرا آزمایش کنید.
در نسخه عمومی، از پیکربندی انتشار استفاده کنید. پیکربندی انتشار نسخه عمدتاً از پرچمهای READ_ONLY استفاده میکند و همه کدهای فعال شده برای آن نسخه را منعکس میکند.
یک پرچم به پیکربندی انتشار trunk_staging اضافه کنید
برای آزمایش یک پرچم جدید، آن را به صورت زیر به پیکربندی انتشار trunk_staging اضافه کنید:
- به
WORKING_DIRECTORY /build/release/aconfig/trunk_staging/بروید - یک دایرکتوری با نام بسته مشابه پرچم خود ایجاد کنید، مانند
com.example.android.aconfig.demo.flagsنشان داده شده در Declare an aconfig flag for Java . - به دایرکتوری جدید بروید.
- در دایرکتوری، یک فایل مقادیر پرچم ایجاد کنید که نام مورد استفاده در فایل اعلام پرچم (
.aconfig) را ترکیب کند، مانندmy_static_flagنشان داده شده در Declare an aconfig flag برای جاوا با_flag_values.textproto. نام فایل حاصلmy_static_flag_flag_values.textprotoاست. فایل را ویرایش کنید و یک
flag_valueمشابه موارد زیر اضافه کنید:flag_value { package: "com.example.android.aconfig.demo.flags" name: "my_static_flag" state: DISABLED Permission: READ_WRITE }کجا:
-
packageحاوی همان نام بسته مورد استفاده در اعلامیه است. -
nameشامل همان نام مورد استفاده در اعلامیه است. -
stateیاENABLEDیاDISABLEDاست. -
permissionREAD_WRITEیاREAD_ONLYاست. به طور کلی،permissionبرایREAD_ONLYبرای فایل هایی با مقادیر پرچم که بخشی از پیکربندی انتشار هستند تنظیم می شود.
-
فایل را ذخیره کنید و از ویرایشگر خود خارج شوید.
در همان فهرست فایل مقادیر پرچم، یک فایل ساخت به نام
Android.bpایجاد کنید. این فایل برای گنجاندن فایل مقادیر پرچم در بیلد استفاده می شود.در فایل
Android.bp، یک بخشaconfig_valuesشبیه به زیر ایجاد کنید:aconfig_values { name: "aconfig-values-platform_build_release-trunk-staging-com.android.aconfig.test-all", package: "com.android.aconfig.test", srcs: [ "*_flag_values.textproto", ] }کجا:
-
nameنام منحصر به فرد ماژول ساخت Soong است. Google از قراردادaconfig-values-platform_ PATH_TO_RELEASE_CONFIG_DIR - CONFIG-NAME - package.name -allاستفاده میکند. توجه داشته باشید کهPATH_TO_RELEASE_CONFIG_DIRbuild/releaseاست. -
packageحاوی همان نام بسته مورد استفاده در اعلامیه است. -
srcsلیستی از تمام فایل های مقادیر پرچم شما است.
-
فایل را ذخیره کنید و از ویرایشگر خود خارج شوید.
به دایرکتوری بالای فهرست فعلی بروید (
cd ..)فایل
Android.bpرا ویرایش کنید. این فایل ساخت شامل لیستی از نام ها (name) مرتبط با هر فایل مقادیر پرچم است. نامی را که در فایل ساخت قبلی (مرحله 8) استفاده کرده اید به این لیست اضافه کنید.اندروید را بسازید و کد جدید خود را اجرا کنید تا مطمئن شوید که طبق تنظیمات فایل مقادیر پرچم فعال است.