डिफ़ॉल्ट रूप से, सुविधा लॉन्च करने से जुड़े सभी फ़्लैग READ_WRITE होते हैं और DISABLED पर सेट होते हैं.
किसी सुविधा को टेस्ट करने से पहले, आपको फ़्लैग के लिए फ़्लैग वैल्यू फ़ाइल बनाकर, बिल्ड में इस्तेमाल की गई डिफ़ॉल्ट वैल्यू को बदलना होगा. फ़्लैग वैल्यू वाली फ़ाइल में, किसी फ़्लैग की स्थिति (ENABLED या DISABLED) और अनुमति (READ_WRITE या READ_ONLY) सेट की जाती है.
रिलीज़ कॉन्फ़िगरेशन एक डायरेक्ट्री होती है. इसमें Android के किसी खास बिल्ड के लिए, फ़्लैग वैल्यू वाली सभी फ़ाइलें होती हैं. इनमें कुछ सुविधाएं चालू और बंद होती हैं.
AOSP में रिलीज़ के कुछ कॉन्फ़िगरेशन शामिल होते हैं, जैसे कि trunk_staging.
रिलीज़ कॉन्फ़िगरेशन डायरेक्ट्री, WORKING_DIRECTORY/build/release/aconfig/ में मिलती हैं.
lunch कमांड का इस्तेमाल करके, टारगेट चुनने पर, टारगेट के लिए रिलीज़ कॉन्फ़िगरेशन भी सेट हो जाता है.
उदाहरण के लिए, यहां दिया गया trunk_staging टारगेट है:
lunch aosp_cf_x86_64_only_phone-trunk_staging-userdebug
ट्रंक स्टेजिंग, डेवलपमेंट रिलीज़ कॉन्फ़िगरेशन है. इसकी वजह यह है कि Google, इसे सामान्य रिलीज़ से पहले सुविधाओं की जांच करने के लिए इस्तेमाल करता है. इस कॉन्फ़िगरेशन में, ज़्यादातर READ_WRITE फ़्लैग का इस्तेमाल किया जाता है. इनकी मदद से, रनटाइम में चालू या बंद की गई सुविधाओं के साथ अपने कोड की जांच की जा सकती है.
सामान्य रिलीज़ के लिए, रिलीज़ रिलीज़ कॉन्फ़िगरेशन का इस्तेमाल करें. रिलीज़ कॉन्फ़िगरेशन में ज़्यादातर READ_ONLY फ़्लैग का इस्तेमाल किया जाता है. साथ ही, इसमें उस रिलीज़ के लिए चालू किए गए सभी कोड दिखते हैं.
trunk_staging रिलीज़ कॉन्फ़िगरेशन में कोई फ़्लैग जोड़ना
किसी नए फ़्लैग को आज़माने के लिए, उसे trunk_staging रिलीज़ कॉन्फ़िगरेशन में इस तरह जोड़ें:
WORKING_DIRECTORY/build/release/aconfig/trunk_staging/पर नेविगेट करें- अपने फ़्लैग के पैकेज के नाम से एक डायरेक्ट्री बनाएं. जैसे,
com.example.android.aconfig.demo.flagsमें दिखाया गया है. Java के लिए aconfig फ़्लैग का एलान करना लेख में इसके बारे में बताया गया है. - नई डायरेक्ट्री पर जाएं.
- डायरेक्ट्री में, फ़्लैग वैल्यू वाली एक ऐसी फ़ाइल बनाएं जिसमें फ़्लैग डिक्लेरेशन (
.aconfig) फ़ाइल में इस्तेमाल किया गया नाम शामिल हो. जैसे,my_static_flagको Java के लिए aconfig फ़्लैग का एलान करना में_flag_values.textprotoके साथ दिखाया गया है. इससे मिलने वाली फ़ाइल का नामmy_static_flag_flag_values.textprotoहै. फ़ाइल में बदलाव करके, नीचे दिए गए
flag_valueजैसा एक और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.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के कन्वेंशन का इस्तेमाल करता है. यह नाम, उस नाम से मेल खाना चाहिए जो पैरंट डायरेक्ट्री कीaconfig_value_setफ़ाइल में मौजूदaconfig_value_setएलान के आधार पर, Soong अपने-आप जनरेट करता है.Android.bpध्यान दें किPATH_TO_RELEASE_CONFIG_DIR,build_releaseहै.packageमें वही पैकेज का नाम शामिल है जिसका इस्तेमाल, कानूनी समझौते में किया गया है.srcsमें, फ़्लैग की वैल्यू वाली आपकी सभी फ़ाइलों की सूची होती है.
फ़ाइल सेव करें और एडिटर से बाहर निकलें.
मौजूदा डायरेक्ट्री से ऊपर वाली डायरेक्ट्री पर जाएं (
cd ..)Android बनाएं और अपने नए कोड को चलाएं. इससे यह पुष्टि की जा सकेगी कि फ़्लैग वैल्यू फ़ाइल में दी गई सेटिंग के हिसाब से, कोड चालू है या नहीं.