सुविधा लॉन्च करने के फ़्लैग की वैल्यू सेट करना

डिफ़ॉल्ट रूप से, सुविधा लॉन्च करने से जुड़े सभी फ़्लैग 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 रिलीज़ कॉन्फ़िगरेशन में इस तरह जोड़ें:

  1. WORKING_DIRECTORY/build/release/aconfig/trunk_staging/ पर नेविगेट करें
  2. अपने फ़्लैग के पैकेज नाम से एक डायरेक्ट्री बनाएं. जैसे, com.example.android.aconfig.demo.flags में दिखाया गया है Java के लिए aconfig फ़्लैग का एलान करना.
  3. नई डायरेक्ट्री पर जाएं.
  4. डायरेक्ट्री में, फ़्लैग वैल्यू वाली एक फ़ाइल बनाएं. इसमें फ़्लैग डिक्लेरेशन (.aconfig) फ़ाइल में इस्तेमाल किया गया नाम शामिल हो. जैसे, my_static_flag को Java के लिए aconfig फ़्लैग का एलान करना में _flag_values.textproto के साथ दिखाया गया है. इससे मिलने वाला फ़ाइल नाम my_static_flag_flag_values.textproto है.
  5. फ़ाइल में बदलाव करके, नीचे दिए गए 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 पर सेट किया जाता है.
  6. फ़ाइल सेव करें और एडिटर से बाहर निकलें.

  7. फ़्लैग वैल्यू वाली फ़ाइल की डायरेक्ट्री में ही, Android.bp नाम की एक बिल्ड फ़ाइल बनाएं. इस फ़ाइल का इस्तेमाल, बिल्ड में फ़्लैग वैल्यू वाली फ़ाइल को शामिल करने के लिए किया जाता है.

  8. 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 में, फ़्लैग की वैल्यू वाली आपकी सभी फ़ाइलों की सूची होती है.
  9. फ़ाइल सेव करें और एडिटर से बाहर निकलें.

  10. मौजूदा डायरेक्ट्री से ऊपर वाली डायरेक्ट्री पर जाएं (cd ..)

  11. Android.bp फ़ाइल में बदलाव करें. इस बिल्ड फ़ाइल में, हर फ़्लैग वैल्यू फ़ाइल से जुड़े नामों (name) की सूची होती है. इस सूची में वह नाम जोड़ें जिसका इस्तेमाल आपने पिछली बिल्ड फ़ाइल (आठवां चरण) में किया था.

  12. Android बनाएं और अपना नया कोड चलाएं. इससे यह पक्का किया जा सकेगा कि फ़्लैग वैल्यू फ़ाइल में दी गई सेटिंग के हिसाब से, यह सुविधा चालू है.