ডিফল্টরূপে, সমস্ত ফিচার লঞ্চ ফ্ল্যাগ 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/এ যান - আপনার ফ্ল্যাগের প্যাকেজ নামের সাথে মিল রেখে একটি ডিরেক্টরি তৈরি করুন, যেমনটি " জাভার জন্য একটি aconfig ফ্ল্যাগ ঘোষণা করুন" অংশে দেখানো
com.example.android.aconfig.demo.flags। - নতুন ডিরেক্টরিতে যান।
- ডিরেক্টরিতে, ফ্ল্যাগ ডিক্লারেশন (
.aconfig) ফাইলে ব্যবহৃত নামটি দিয়ে একটি ফ্ল্যাগ ভ্যালু ফাইল তৈরি করুন, যেমনটি "Declare an aconfig flag for Java with_flag_values.textproto" অংশে দেখানোmy_static_flag। এর ফলে ফাইলের নামটি হবে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। সাধারণত, রিলিজ কনফিগারেশনের অংশ এমন ফ্ল্যাগ ভ্যালু ফাইলগুলোর জন্যpermissionREAD_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 বিল্ড মডিউলের অনন্য নাম। Google এই রীতি অনুসরণ করেaconfig-values-platform_ PATH_TO_RELEASE_CONFIG_DIR - CONFIG_NAME - package.name -all। এই নামটি অবশ্যই সেই নামের সাথে মিলতে হবে যা soong তার প্যারেন্ট ডিরেক্টরির `Android.bpফাইলে থাকাaconfig_value_setঘোষণার উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে তৈরি করে। উল্লেখ্য যে,PATH_TO_RELEASE_CONFIG_DIRহলোbuild_release। -
packageডিক্লারেশনে ব্যবহৃত একই প্যাকেজ নামটি রয়েছে। -
srcsহলো আপনার সমস্ত ফ্ল্যাগ ভ্যালু ফাইলের একটি তালিকা।
-
ফাইলটি সংরক্ষণ করুন এবং আপনার এডিটর থেকে বেরিয়ে যান।
বর্তমান ডিরেক্টরির উপরের ডিরেক্টরিতে যান (
cd ..)অ্যান্ড্রয়েড বিল্ড করুন এবং আপনার নতুন কোডটি রান করে যাচাই করুন যে এটি ফ্ল্যাগ ভ্যালু ফাইলের সেটিং অনুযায়ী সক্রিয় হয়েছে।