به طور پیشفرض، همه پرچمهای راهاندازی ویژگی 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
مرحلهبندی ترانک یک پیکربندی انتشار توسعه است زیرا گوگل از آن برای آزمایش ویژگیها قبل از انتشار عمومی استفاده میکند. این پیکربندی عمدتاً از پرچمهای 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 for Java with_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. -
permissionیاREAD_WRITEاست یاREAD_ONLY. به طور کلی،permissionبرای فایلهایی که مقادیر flag دارند و بخشی از پیکربندی انتشار هستند، رویREAD_ONLYتنظیم میشود.
-
فایل را ذخیره کنید و از ویرایشگر خود خارج شوید.
در همان دایرکتوری که فایل مقادیر پرچم قرار دارد، یک فایل ساخت به نام
Android.bpایجاد کنید. این فایل برای گنجاندن فایل مقادیر پرچم در ساخت استفاده میشود.در فایل
Android.bp، یک بخشaconfig_valuesمشابه زیر ایجاد کنید:aconfig_values { name: "aconfig-values-platform_build_release-trunk-staging-com.example.android.aconfig.demo.flags-all", package: "com.example.android.aconfig.demo.flags", srcs: [ "*_flag_values.textproto", ] }کجا:
-
nameنام منحصر به فرد برای ماژول ساخت Soong است. گوگل از قراردادaconfig-values-platform_ PATH_TO_RELEASE_CONFIG_DIR - CONFIG_NAME - package.name -allاستفاده میکند. این نام باید با نامی که soong به طور خودکار بر اساس اعلانaconfig_value_setدر فایلAndroid.bpدایرکتوری والد تولید میکند، مطابقت داشته باشد. توجه داشته باشید کهPATH_TO_RELEASE_CONFIG_DIRbuild_releaseاست. -
packageشامل همان نام بستهای است که در اعلان استفاده شده است. -
srcsفهرستی از تمام فایلهای مقادیر پرچم شماست.
-
فایل را ذخیره کنید و از ویرایشگر خود خارج شوید.
رفتن به دایرکتوری بالای دایرکتوری فعلی (
cd ..)اندروید را بسازید و کد جدید خود را اجرا کنید تا تأیید کنید که طبق تنظیمات موجود در فایل مقادیر پرچم فعال شده است.