वाई-फ़ाई का लो-लेटेंसी मोड

Android 10 में, वाई-फ़ाई लॉक एपीआई को बेहतर बनाया गया है. इससे, कम समय में डेटा ट्रांसफ़र करने वाले ऐप्लिकेशन, वाई-फ़ाई को कम समय में डेटा ट्रांसफ़र करने वाले मोड पर कॉन्फ़िगर कर सकते हैं. लो-लेटेंसी मोड तब शुरू होता है, जब ये सभी शर्तें पूरी होती हैं:

  • वाई-फ़ाई चालू हो और डिवाइस में इंटरनेट ऐक्सेस हो.
  • ऐप्लिकेशन ने वाई-फ़ाई लॉक बनाया है और उसे हासिल किया है. साथ ही, यह फ़ोरग्राउंड में चल रहा है.
  • स्क्रीन चालू है.

डिवाइसों पर कम-लेटेंसी मोड की सुविधा देने के लिए, डिवाइस बनाने वाली कंपनियों को WLAN ड्राइवर और वेंडर HAL को अपडेट करना होगा. कम लेटेंसी वाले मोड में, पावर सेविंग (इसे IEEE 802.11 स्टैंडर्ड में डॉज़ स्टेट भी कहा जाता है) की सुविधा को फ़्रेमवर्क से बंद कर दिया जाता है. ड्राइवर और फ़र्मवेयर लेयर में स्कैनिंग और रोमिंग पैरामीटर को ऑप्टिमाइज़ किया जा सकता है, ताकि वाई-फ़ाई की लेटेन्सी को और कम किया जा सके. ऑप्टिमाइज़ेशन के सटीक तरीके, लागू करने के तरीके पर निर्भर करते हैं.

Android में हाई-परफ़ॉर्मेंस वाई-फ़ाई लॉक मोड (एपीआई लेवल 12 में पेश किया गया) होता है. यह मोड, कम लेटेंसी वाले मोड से अलग होता है.

लागू करना

वाई-फ़ाई के लो-लेटेंसी मोड की सुविधा के लिए, यहां दिए गए IWifiChip फ़ंक्शन लागू करें.

एआईडीएल एचएएल में:

  • int getFeatureSet()
  • void setLatencyMode(in LatencyMode mode)

एचआईडीएल एचएएल (1.3 या इसके बाद के वर्शन) में:

  • getCapabilities_1_3() generates (WifiStatus status, bitfield<ChipCapabilityMask> capabilities)
  • setLatencyMode(LatencyMode mode) generates (WifiStatus status)

रेफ़रंस के तौर पर लागू किए गए कोड को wifi_legacy_hal.cpp में देखा जा सकता है. इसमें ये फ़ंक्शन शामिल हैं:

  • wifi_error wifi_get_supported_feature_set(wifi_interface_handle iface, feature_set *set)
  • wifi_error wifi_set_latency_mode(wifi_interface_handle handle, wifi_latency_mode mode)

कम इंतज़ार के समय वाले मोड में, Android फ़्रेमवर्क में WifiLockManager की मदद से, बैटरी बचाने की सुविधा को साफ़ तौर पर बंद कर दिया जाता है. इसके लिए, WLAN ड्राइवर को NL80211 कमांड का इस्तेमाल करने की अनुमति होनी चाहिए, NL80211_CMD_SET_POWER_SAVE, ताकि पावर सेव मोड को चालू और बंद किया जा सके. वाई-फ़ाई पावर सेव मोड बंद होने पर, वाई-फ़ाई सिस्टम को चालू रहना चाहिए. साथ ही, कम से कम देरी के साथ पैकेट भेजने या पाने के लिए तैयार रहना चाहिए.

इस विकल्प से, थीम बनाने की सुविधा बंद हो जाती है

कम लेटेन्सी वाले मोड की सुविधा बंद करने के लिए, एआईडीएल एचएएल के लिए getFeatureSet() या एचआईडीएल एचएएल के लिए getCapabilities_1_3() के कोड को अपडेट करें. ऐसा इस तरह से करें कि capabilities & SET_LATENCY_MODE = 0 हो, जहां SET_LATENCY_MODE को IWifiChip एआईडीएल या एचआईडीएल डेफ़िनिशन में तय किया गया है. इस सुविधा के बंद होने पर, फ़्रेमवर्क सिर्फ़ तब बैटरी बचाने की सुविधा बंद करता है, जब कम इंतज़ार वाला मोड चालू हो.

सत्यापन

यह जांच करने के लिए कि लो-लेटेंसी मोड चालू होने पर काम करता है, अपने-आप होने वाले इन टेस्ट और मैन्युअल पिंग लेटेंसी टेस्ट को चलाएं.

ऑटोमेटेड टेस्टिंग

Vendor Test Suite (VTS) और Compatibility Test Suite (CTS) के इन टेस्ट को चलाकर, ऑटोमेटेड टेस्टिंग करें:

मैन्युअल टेस्टिंग

जांच के लिए ज़रूरी उपकरण और एनवायरमेंट

मैन्युअल टेस्टिंग के लिए, यह सेटअप ज़रूरी है:

  • वाई-फ़ाई ऐक्सेस पॉइंट (एपी)
  • जांच किए जा रहे डिवाइस (डीयूटी) का फ़ोन और टेस्ट कंप्यूटर
    • DUT को वाई-फ़ाई के ज़रिए ऐक्सेस पॉइंट से कनेक्ट किया जाना चाहिए.
    • टेस्ट कंप्यूटर को वाई-फ़ाई या ईथरनेट के ज़रिए ऐक्सेस पॉइंट से कनेक्ट किया जाना चाहिए.
    • टेस्ट कंप्यूटर को यूएसबी के ज़रिए, DUT से कनेक्ट किया जाना चाहिए.
  1. लो-लेटेंसी मोड चालू करें.

    adb root
    adb shell cmd wifi force-low-latency-mode enabled
    
  2. पक्का करें कि आपका कंप्यूटर, Android डीबग ब्रिज (एडीबी) के ज़रिए फ़ोन से कनेक्ट हो. ADB शेल से, गेटवे को तीन घंटे तक लगातार पिंग करें. इसके लिए, हर एक सेकंड में पिंग करें.

  3. जांच के आउटपुट को किसी टेक्स्ट फ़ाइल में सेव करें. इसके बाद, पिंग लेटेन्सी की जांच के नतीजों का हिस्टोग्राम जनरेट करने के लिए, स्प्रेडशीट या Python स्क्रिप्ट का इस्तेमाल करें.

  4. इंतज़ार का समय कम करने की सुविधा बंद करके, पहले से लेकर तीसरे चरण को दोहराएं.

    adb root
    adb shell cmd wifi force-low-latency-mode disabled
    
  5. टेस्ट के नतीजों की तुलना करके पुष्टि करें कि कम इंतज़ार के समय वाला मोड चालू होने पर, पिंग के इंतज़ार के औसत समय की वैल्यू कम हो गई है.

  1. लो-लेटेंसी मोड चालू करें.

    adb root
    adb shell cmd wifi force-low-latency-mode enabled
    
  2. टेस्ट कंप्यूटर की कमांड लाइन से, फ़ोन के आईपी पते को एक-एक सेकंड के अंतराल पर तीन घंटे तक लगातार पिंग करें.

  3. जांच के आउटपुट को किसी टेक्स्ट फ़ाइल में सेव करें. इसके बाद, स्प्रेडशीट या Python स्क्रिप्ट का इस्तेमाल करके, पिंग लेटेन्सी की जांच के नतीजों का हिस्टोग्राम जनरेट करें.

  4. इंतज़ार का समय कम करने की सुविधा बंद करके, पहले से लेकर तीसरे चरण को दोहराएं.

    adb root
    adb shell cmd wifi force-low-latency-mode disabled
    
  5. टेस्ट के नतीजों की तुलना करके पुष्टि करें कि कम इंतज़ार के समय वाला मोड चालू होने पर, पिंग के इंतज़ार के औसत समय की वैल्यू कम हो गई है.

अन्य टेस्ट

ऊपर दी गई जांचों को अलग-अलग एनवायरमेंट में दोहराएं. उदाहरण के लिए, घर पर या ऑफ़िस में.