به طور پیشفرض، همه پرچمهای راهاندازی ویژگی 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_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
است. -
permission
READ_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_DIR
build/release
است. -
package
حاوی همان نام بسته مورد استفاده در اعلامیه است. -
srcs
لیستی از تمام فایل های مقادیر پرچم شما است.
-
فایل را ذخیره کنید و از ویرایشگر خود خارج شوید.
به دایرکتوری بالای فهرست فعلی بروید (
cd ..
)فایل
Android.bp
را ویرایش کنید. این فایل ساخت شامل لیستی از نام ها (name
) مرتبط با هر فایل مقادیر پرچم است. نامی را که در فایل ساخت قبلی (مرحله 8) استفاده کرده اید به این لیست اضافه کنید.اندروید را بسازید و کد جدید خود را اجرا کنید تا مطمئن شوید که طبق تنظیمات فایل مقادیر پرچم فعال است.