বিল্ড পতাকাগুলি বিল্ড-টাইম ধ্রুবক এবং রানটাইমের সময় পরিবর্তন করা যায় না। এই পতাকাগুলি এমন পরিস্থিতিতে ব্যবহার করা হয় যেখানে aconfig পতাকাগুলি ব্যবহার করা যায় না, যেমন
- আপনার কাছে একটি পূর্বনির্ধারিত বা পূর্বনির্মাণকৃত কোড রয়েছে যা আপনি একটি বিল্ডে ঐচ্ছিকভাবে অন্তর্ভুক্ত করতে চান।
- আপনি সিস্টেম নিজেই তৈরি করতে পরিবর্তন করতে চান।
- আপনি কোড আকার পরিচালনা করতে নির্ভরতার চারপাশে পতাকা রাখতে চান।
- আপনি একটি বৈশিষ্ট্যের লঞ্চ পরিচালনা করতে চান, কিন্তু সিস্টেম দ্বারা aconfig পতাকা উপলব্ধ করার আগে আপনাকে পতাকার মান পরীক্ষা করতে হবে।
একটি বিল্ড পতাকা ঘোষণা
টেক্সটপ্রোটো ফাইলে বিল্ড পতাকা ঘোষণা করা হয়। একটি বিল্ড পতাকা ঘোষণা করতে:
-
WORKING_DIRECTORY /build/release/flag_declarations/
এ নেভিগেট করুন -
RELEASE_ MY_FLAG_NAME .textproto
নামে একটি ফাইল তৈরি করুন। ফাইলটি সম্পাদনা করুন এবং নিম্নলিখিতগুলির মতো একটি এন্ট্রি যোগ করুন:
name: "RELEASE_MY_FLAG_NAME" namespace: "android_UNKNOWN" description: "Control if we should read from new storage." workflow: LAUNCH containers: "product" containers: "system" containers: "system_ext" containers: "vendor"
কোথায়:
-
name
RELEASE_
এর পূর্বে পতাকার নাম ধারণ করে। শুধুমাত্র বড় হাতের অক্ষর এবং আন্ডারস্কোর অনুমোদিত। -
namespace
অবদানের জন্য নামস্থান রয়েছে। আপনার নামস্থান নির্ধারণ করতে আপনাকে অবশ্যই নির্ধারিত Google পর্যালোচকের সাথে কাজ করতে হবে। আপনি যদি আপনার নিজস্ব AOSP মিররের স্থিতিশীলতা বজায় রাখতে বৈশিষ্ট্য লঞ্চ পতাকা ব্যবহার করেন তবে আপনি আপনার পছন্দ মতো নামস্থান ব্যবহার করতে পারেন। -
value
হল প্রাথমিক প্রকার এবং পতাকার মান। প্রকারটিbool_value
বাstring_value
হতে পারে। টাইপstring_value
হলে মান অবশ্যই উদ্ধৃতিতে থাকতে হবে। নির্দিষ্ট করা না থাকলে, মানটি একটি খালি স্ট্রিং। বুলিয়ান মানtrue
বা মিথ্যার জন্য খালি স্ট্রিং হিসাবে উপস্থাপিত হয়। -
workflow
হয়LAUNCH
বাPREBUILT
। বুলিয়ান পতাকার জন্যLAUNCH
ব্যবহার করুন যাfalse
থেকেtrue
অগ্রসর হয়, বৈশিষ্ট্য লঞ্চ পতাকার মতো। ফ্ল্যাগগুলির জন্যPREBUILT
ব্যবহার করুন যা একটি সংস্করণ সেট করে, সাধারণত একটি পূর্বনির্মাণ। - আপনি যে ধরনের কোড লিখছেন তা
containers
, যেমন বিক্রেতা কোডের জন্য "বিক্রেতা" বা পণ্য কোডের জন্য "পণ্য"। আপনি যদি ব্যবহার করার মান নিয়ে সন্দেহে থাকেন, তাহলে আগের নমুনায় দেখানো চারটি পাত্রের ধরন ব্যবহার করুন।
-
একটি Soong ফাইলে একটি বিল্ড পতাকা ব্যবহার করুন
বিল্ড ফাইল এবং মডিউল যেখানে আপনি পতাকা মান জিজ্ঞাসা করতে চান, পতাকা মান উপর শাখা একটি শর্তসাপেক্ষ ব্যবহার করুন. উদাহরণস্বরূপ, নিম্নলিখিত স্নিপেটে, RELEASE__READ_FROM_NEW_STORAGE
পতাকার মান জিজ্ঞাসা করা হয়েছে:
cc_defaults {
name: "aconfig_lib_cc_shared_link.defaults",
shared_libs: select(release_flag("RELEASE_READ_FROM_NEW_STORAGE"), {
true: ["libaconfig_storage_read_api_cc],
default: [],
}),
}
যদি এই পতাকার মান true
হয়, libaconfig_storage_read_api_cc
মডিউলটি cc_defaults
মডিউলের সাথে গতিশীলভাবে লিঙ্ক করা হয়।
এই পতাকার মান false
হলে, কিছুই ( default: [],
) হবে না।
একটি মেকফাইলে একটি বিল্ড পতাকা ব্যবহার করুন
মেক ফাইলে, একটি বিল্ড পতাকা হল একটি পঠনযোগ্য মেক ভেরিয়েবল। নিম্নলিখিত মেকফাইল নমুনাটি RELEASED_PACKAGE_NFC_STCK
নামে একটি বিল্ড পতাকা অ্যাক্সেস করে:
# NFC and Secure Element packages
PRODUCT_PACKAGES += \
$(RELEASE_PACKAGE_NFC_STACK) \
Tag \
SecureElement \
android.hardware.nfc-service.st \
android.hardware.secure_element@1.0-service.st \
NfcOverlayCoral
এই পতাকার ঘোষণায় একটি workflow
ক্ষেত্র রয়েছে যা RELEASE_PACKAGE_NFC_STACK.textproto
এ PREBUILT
সেট করা হয়েছে এবং trunk_staging
ডেভেলপমেন্ট কনফিগারেশনের জন্য পতাকা মান ফাইলের com.android.nfcservices
RELEASE_PACKAGE_NFC_STACK.textproto
এর একটি স্ট্রিং মান।
বিল্ড পতাকাগুলি বিল্ড-টাইম ধ্রুবক এবং রানটাইমের সময় পরিবর্তন করা যায় না। এই পতাকাগুলি এমন পরিস্থিতিতে ব্যবহার করা হয় যেখানে aconfig পতাকাগুলি ব্যবহার করা যায় না, যেমন
- আপনার কাছে একটি পূর্বনির্ধারিত বা পূর্বনির্মাণকৃত কোড রয়েছে যা আপনি একটি বিল্ডে ঐচ্ছিকভাবে অন্তর্ভুক্ত করতে চান।
- আপনি সিস্টেম নিজেই তৈরি করতে পরিবর্তন করতে চান।
- আপনি কোড আকার পরিচালনা করতে নির্ভরতার চারপাশে পতাকা রাখতে চান।
- আপনি একটি বৈশিষ্ট্যের লঞ্চ পরিচালনা করতে চান, কিন্তু সিস্টেম দ্বারা aconfig পতাকা উপলব্ধ করার আগে আপনাকে পতাকার মান পরীক্ষা করতে হবে।
একটি বিল্ড পতাকা ঘোষণা
টেক্সটপ্রোটো ফাইলে বিল্ড পতাকা ঘোষণা করা হয়। একটি বিল্ড পতাকা ঘোষণা করতে:
-
WORKING_DIRECTORY /build/release/flag_declarations/
এ নেভিগেট করুন -
RELEASE_ MY_FLAG_NAME .textproto
নামে একটি ফাইল তৈরি করুন। ফাইলটি সম্পাদনা করুন এবং নিম্নলিখিতগুলির মতো একটি এন্ট্রি যোগ করুন:
name: "RELEASE_MY_FLAG_NAME" namespace: "android_UNKNOWN" description: "Control if we should read from new storage." workflow: LAUNCH containers: "product" containers: "system" containers: "system_ext" containers: "vendor"
কোথায়:
-
name
RELEASE_
এর পূর্বে পতাকার নাম ধারণ করে। শুধুমাত্র বড় হাতের অক্ষর এবং আন্ডারস্কোর অনুমোদিত। -
namespace
অবদানের জন্য নামস্থান রয়েছে। আপনার নামস্থান নির্ধারণ করতে আপনাকে অবশ্যই নির্ধারিত Google পর্যালোচকের সাথে কাজ করতে হবে। আপনি যদি আপনার নিজস্ব AOSP মিররের স্থিতিশীলতা বজায় রাখতে বৈশিষ্ট্য লঞ্চ পতাকা ব্যবহার করেন তবে আপনি আপনার পছন্দ মতো নামস্থান ব্যবহার করতে পারেন। -
value
হল প্রাথমিক প্রকার এবং পতাকার মান। প্রকারটিbool_value
বাstring_value
হতে পারে। টাইপstring_value
হলে মান অবশ্যই উদ্ধৃতিতে থাকতে হবে। নির্দিষ্ট করা না থাকলে, মানটি একটি খালি স্ট্রিং। বুলিয়ান মানtrue
বা মিথ্যার জন্য খালি স্ট্রিং হিসাবে উপস্থাপিত হয়। -
workflow
হয়LAUNCH
বাPREBUILT
। বুলিয়ান পতাকার জন্যLAUNCH
ব্যবহার করুন যাfalse
থেকেtrue
অগ্রসর হয়, বৈশিষ্ট্য লঞ্চ পতাকার মতো। ফ্ল্যাগগুলির জন্যPREBUILT
ব্যবহার করুন যা একটি সংস্করণ সেট করে, সাধারণত একটি পূর্বনির্মাণ। - আপনি যে ধরনের কোড লিখছেন তা
containers
, যেমন বিক্রেতা কোডের জন্য "বিক্রেতা" বা পণ্য কোডের জন্য "পণ্য"। আপনি যদি ব্যবহার করার মান নিয়ে সন্দেহে থাকেন, তাহলে আগের নমুনায় দেখানো চারটি পাত্রের ধরন ব্যবহার করুন।
-
একটি Soong ফাইলে একটি বিল্ড পতাকা ব্যবহার করুন
বিল্ড ফাইল এবং মডিউল যেখানে আপনি পতাকা মান জিজ্ঞাসা করতে চান, পতাকা মান উপর শাখা একটি শর্তসাপেক্ষ ব্যবহার করুন. উদাহরণস্বরূপ, নিম্নলিখিত স্নিপেটে, RELEASE__READ_FROM_NEW_STORAGE
পতাকার মান জিজ্ঞাসা করা হয়েছে:
cc_defaults {
name: "aconfig_lib_cc_shared_link.defaults",
shared_libs: select(release_flag("RELEASE_READ_FROM_NEW_STORAGE"), {
true: ["libaconfig_storage_read_api_cc],
default: [],
}),
}
যদি এই পতাকার মান true
হয়, libaconfig_storage_read_api_cc
মডিউলটি cc_defaults
মডিউলের সাথে গতিশীলভাবে লিঙ্ক করা হয়।
এই পতাকার মান false
হলে, কিছুই ( default: [],
) হবে না।
একটি মেকফাইলে একটি বিল্ড পতাকা ব্যবহার করুন
মেক ফাইলে, একটি বিল্ড পতাকা হল একটি পঠনযোগ্য মেক ভেরিয়েবল। নিম্নলিখিত মেকফাইল নমুনাটি RELEASED_PACKAGE_NFC_STCK
নামে একটি বিল্ড পতাকা অ্যাক্সেস করে:
# NFC and Secure Element packages
PRODUCT_PACKAGES += \
$(RELEASE_PACKAGE_NFC_STACK) \
Tag \
SecureElement \
android.hardware.nfc-service.st \
android.hardware.secure_element@1.0-service.st \
NfcOverlayCoral
এই পতাকার ঘোষণায় একটি workflow
ক্ষেত্র রয়েছে যা RELEASE_PACKAGE_NFC_STACK.textproto
এ PREBUILT
সেট করা হয়েছে এবং trunk_staging
ডেভেলপমেন্ট কনফিগারেশনের জন্য পতাকা মান ফাইলের com.android.nfcservices
RELEASE_PACKAGE_NFC_STACK.textproto
এর একটি স্ট্রিং মান।
বিল্ড পতাকাগুলি বিল্ড-টাইম ধ্রুবক এবং রানটাইমের সময় পরিবর্তন করা যায় না। এই পতাকাগুলি এমন পরিস্থিতিতে ব্যবহার করা হয় যেখানে aconfig পতাকাগুলি ব্যবহার করা যায় না, যেমন
- আপনার কাছে একটি পূর্বনির্ধারিত বা পূর্বনির্মাণকৃত কোড রয়েছে যা আপনি একটি বিল্ডে ঐচ্ছিকভাবে অন্তর্ভুক্ত করতে চান।
- আপনি সিস্টেম নিজেই তৈরি করতে পরিবর্তন করতে চান।
- আপনি কোড আকার পরিচালনা করতে নির্ভরতার চারপাশে পতাকা রাখতে চান।
- আপনি একটি বৈশিষ্ট্যের লঞ্চ পরিচালনা করতে চান, কিন্তু সিস্টেম দ্বারা aconfig পতাকা উপলব্ধ করার আগে আপনাকে পতাকার মান পরীক্ষা করতে হবে।
একটি বিল্ড পতাকা ঘোষণা
টেক্সটপ্রোটো ফাইলে বিল্ড পতাকা ঘোষণা করা হয়। একটি বিল্ড পতাকা ঘোষণা করতে:
-
WORKING_DIRECTORY /build/release/flag_declarations/
এ নেভিগেট করুন -
RELEASE_ MY_FLAG_NAME .textproto
নামে একটি ফাইল তৈরি করুন। ফাইলটি সম্পাদনা করুন এবং নিম্নলিখিতগুলির মতো একটি এন্ট্রি যোগ করুন:
name: "RELEASE_MY_FLAG_NAME" namespace: "android_UNKNOWN" description: "Control if we should read from new storage." workflow: LAUNCH containers: "product" containers: "system" containers: "system_ext" containers: "vendor"
কোথায়:
-
name
RELEASE_
এর পূর্বে পতাকার নাম ধারণ করে। শুধুমাত্র বড় হাতের অক্ষর এবং আন্ডারস্কোর অনুমোদিত। -
namespace
অবদানের জন্য নামস্থান রয়েছে। আপনার নামস্থান নির্ধারণ করতে আপনাকে অবশ্যই নির্ধারিত Google পর্যালোচকের সাথে কাজ করতে হবে। আপনি যদি আপনার নিজস্ব AOSP মিররের স্থিতিশীলতা বজায় রাখতে বৈশিষ্ট্য লঞ্চ পতাকা ব্যবহার করেন তবে আপনি আপনার পছন্দ মতো নামস্থান ব্যবহার করতে পারেন। -
value
হল প্রাথমিক প্রকার এবং পতাকার মান। প্রকারটিbool_value
বাstring_value
হতে পারে। টাইপstring_value
হলে মান অবশ্যই উদ্ধৃতিতে থাকতে হবে। নির্দিষ্ট করা না থাকলে, মানটি একটি খালি স্ট্রিং। বুলিয়ান মানtrue
বা মিথ্যার জন্য খালি স্ট্রিং হিসাবে উপস্থাপিত হয়। -
workflow
হয়LAUNCH
বাPREBUILT
। বুলিয়ান পতাকার জন্যLAUNCH
ব্যবহার করুন যাfalse
থেকেtrue
অগ্রসর হয়, বৈশিষ্ট্য লঞ্চ পতাকার মতো। ফ্ল্যাগগুলির জন্যPREBUILT
ব্যবহার করুন যা একটি সংস্করণ সেট করে, সাধারণত একটি পূর্বনির্মাণ। - আপনি যে ধরনের কোড লিখছেন তা
containers
, যেমন বিক্রেতা কোডের জন্য "বিক্রেতা" বা পণ্য কোডের জন্য "পণ্য"। আপনি যদি ব্যবহার করার মান নিয়ে সন্দেহে থাকেন, তাহলে আগের নমুনায় দেখানো চারটি পাত্রের ধরন ব্যবহার করুন।
-
একটি Soong ফাইলে একটি বিল্ড পতাকা ব্যবহার করুন
বিল্ড ফাইল এবং মডিউল যেখানে আপনি পতাকা মান জিজ্ঞাসা করতে চান, পতাকা মান উপর শাখা একটি শর্তসাপেক্ষ ব্যবহার করুন. উদাহরণস্বরূপ, নিম্নলিখিত স্নিপেটে, RELEASE__READ_FROM_NEW_STORAGE
পতাকার মান জিজ্ঞাসা করা হয়েছে:
cc_defaults {
name: "aconfig_lib_cc_shared_link.defaults",
shared_libs: select(release_flag("RELEASE_READ_FROM_NEW_STORAGE"), {
true: ["libaconfig_storage_read_api_cc],
default: [],
}),
}
যদি এই পতাকার মান true
হয়, libaconfig_storage_read_api_cc
মডিউলটি cc_defaults
মডিউলের সাথে গতিশীলভাবে লিঙ্ক করা হয়।
এই পতাকার মান false
হলে, কিছুই ( default: [],
) হবে না।
একটি মেকফাইলে একটি বিল্ড পতাকা ব্যবহার করুন
মেক ফাইলে, একটি বিল্ড পতাকা হল একটি পঠনযোগ্য মেক ভেরিয়েবল। নিম্নলিখিত মেকফাইল নমুনাটি RELEASED_PACKAGE_NFC_STCK
নামে একটি বিল্ড পতাকা অ্যাক্সেস করে:
# NFC and Secure Element packages
PRODUCT_PACKAGES += \
$(RELEASE_PACKAGE_NFC_STACK) \
Tag \
SecureElement \
android.hardware.nfc-service.st \
android.hardware.secure_element@1.0-service.st \
NfcOverlayCoral
এই পতাকার ঘোষণায় একটি workflow
ক্ষেত্র রয়েছে যা RELEASE_PACKAGE_NFC_STACK.textproto
এ PREBUILT
সেট করা হয়েছে এবং trunk_staging
ডেভেলপমেন্ট কনফিগারেশনের জন্য পতাকা মান ফাইলের com.android.nfcservices
RELEASE_PACKAGE_NFC_STACK.textproto
এর একটি স্ট্রিং মান।