Android 10 में वाई-फ़ाई लॉक एपीआई को बेहतर बनाया गया है. इससे, कम इंतज़ार वाले मोड में वाई-फ़ाई को कॉन्फ़िगर करने की सुविधा, इंतज़ार के समय पर निर्भर ऐप्लिकेशन के लिए उपलब्ध हो जाती है. लो-लेटेंसी मोड तब शुरू होता है, जब ये सभी शर्तें पूरी होती हैं:
- वाई-फ़ाई चालू हो और डिवाइस में इंटरनेट का ऐक्सेस हो.
- ऐप्लिकेशन ने वाई-फ़ाई लॉक बनाया है और उसे ऐक्सेस किया है. साथ ही, वह फ़ोरग्राउंड में चल रहा है.
- स्क्रीन चालू हो.
डिवाइसों पर कम इंतज़ार वाले मोड का इस्तेमाल करने के लिए, डिवाइस बनाने वाली कंपनियों को वीपीएन के लिए इस्तेमाल होने वाले ड्राइवर और वेंडर एचएएल को अपडेट करना होगा. लो-लेटेंसी मोड में, पावर सेव (जिसे आईईईई 802.11 स्टैंडर्ड में डोज़ स्टेट भी कहा जाता है) फ़्रेमवर्क के ज़रिए साफ़ तौर पर बंद कर दिया जाता है. वाई-फ़ाई के इंतज़ार का समय कम करने के लिए, ड्राइवर और फ़र्मवेयर लेयर में स्कैनिंग और रोमिंग पैरामीटर को ऑप्टिमाइज़ किया जा सकता है. सटीक ऑप्टिमाइज़ेशन, लागू करने के तरीके के हिसाब से होते हैं.
Android में बेहतर परफ़ॉर्मेंस वाला Wi-Fi लॉक मोड (एपीआई लेवल 12 में लॉन्च किया गया) होता है. यह लो-लेटेंसी मोड से अलग होता है.
लागू करना
वाई-फ़ाई के कम इंतज़ार वाले मोड की सुविधा के साथ काम करने के लिए, यहां दिए गए IWifiChip
फ़ंक्शन लागू करें.
एआईडीएल एचएएल में:
int getFeatureSet()
void setLatencyMode(in LatencyMode mode)
HIDL HAL (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
होना चाहिए, ताकि पावर सेव मोड को चालू और बंद किया जा सके. वाई-फ़ाई पावर सेव मोड बंद होने पर, वाई-फ़ाई सिस्टम चालू रहना चाहिए. साथ ही, वह कम से कम देरी के साथ पैकेट भेजने या पाने के लिए तैयार होना चाहिए.
सुविधा बंद करना
लो-लेटेंसी मोड की सुविधा को बंद करने के लिए, AIDL HAL के लिए getFeatureSet()
या HIDL HAL के लिए getCapabilities_1_3()
कोड को इस तरह अपडेट करें कि capabilities & SET_LATENCY_MODE = 0
, जहां SET_LATENCY_MODE
को IWifiChip
AIDL या HIDL में तय किया गया हो.
यह सुविधा बंद होने पर, फ़्रेमवर्क सिर्फ़ तब पावर सेव मोड को बंद करता है, जब कम इंतज़ार वाला मोड चालू हो.
पुष्टि करें
यह जांचने के लिए कि कम इंतज़ार वाला मोड चालू होने पर काम करता है या नहीं, नीचे दिए गए ऑटोमेटेड टेस्ट और मैन्युअल तरीके से किए जाने वाले इंतज़ार के समय के टेस्ट चलाएं.
ऑटोमेटेड टेस्टिंग
यहां दिए गए वीटीएस और सीटीएस टेस्ट चलाएं:
- VTS (AIDL):
hardware/interfaces/wifi/aidl/vts/functional/wifi_chip_aidl_test.cpp
- VTS (HIDL):
hardware/interfaces/wifi/1.3/vts/functional/wifi_chip_hidl_test.cpp
- सीटीएस:
cts/tests/tests/net/src/android/net/wifi/cts/WifiLockTest.java
मैन्युअल टेस्टिंग
टेस्ट के लिए ज़रूरी उपकरण और एनवायरमेंट
मैन्युअल टेस्टिंग के लिए, यह सेटअप ज़रूरी है:
- वाई-फ़ाई ऐक्सेस पॉइंट (एपी)
टेस्ट किया जा रहा डिवाइस (DUT) फ़ोन और टेस्ट कंप्यूटर
- डीयूटी को वाई-फ़ाई के ज़रिए ऐक्सेस पॉइंट से कनेक्ट करना ज़रूरी है.
- टेस्ट कंप्यूटर को वाई-फ़ाई या ईथरनेट के ज़रिए ऐक्सेस पॉइंट से कनेक्ट करना ज़रूरी है.
- जांच करने वाला कंप्यूटर, यूएसबी के ज़रिए डीयूटी से कनेक्ट होना चाहिए.
अपलिंक पिंग टेस्ट
लो-लेटेंसी मोड चालू करें.
adb root
adb shell cmd wifi force-low-latency-mode enabled
पक्का करें कि आपका कंप्यूटर, ADB के ज़रिए फ़ोन से कनेक्ट हो. ADB शेल से, गेटवे को एक सेकंड के अंतराल पर तीन घंटे तक लगातार पिंग करें.
टेस्ट आउटपुट को टेक्स्ट फ़ाइल में सेव करें. इसके बाद, पिंग इंतज़ार के समय की जांच के नतीजों का हिस्टोग्राम जनरेट करने के लिए, स्प्रेडशीट या Python स्क्रिप्ट का इस्तेमाल करें.
पहले से लेकर तीसरे चरण को दोहराएं. हालांकि, इस दौरान इंतज़ार का समय कम करने वाला मोड बंद रखें.
adb root
adb shell cmd wifi force-low-latency-mode disabled
टेस्ट के नतीजों की तुलना करके पक्का करें कि इंतज़ार का कम समय वाला मोड चालू होने पर, औसत पिंग इंतज़ार की वैल्यू कम हो गई है.
डाउनलिंक पिंग टेस्ट
लो-लेटेंसी मोड चालू करें.
adb root
adb shell cmd wifi force-low-latency-mode enabled
जांच वाले कंप्यूटर की कमांड लाइन से, फ़ोन के आईपी पते को 1 सेकंड के अंतराल पर लगातार तीन घंटे तक पिंग करें.
जांच के आउटपुट को टेक्स्ट फ़ाइल में सेव करें. साथ ही, स्प्रेडशीट या Python स्क्रिप्ट का इस्तेमाल करके, पिंग इंतज़ार का समय जांच के नतीजों का हिस्टोग्राम जनरेट करें.
पहले से लेकर तीसरे चरण को दोहराएं. हालांकि, इस दौरान इंतज़ार का समय कम करने वाला मोड बंद रखें.
adb root
adb shell cmd wifi force-low-latency-mode disabled
जांच के नतीजों की तुलना करके यह पक्का करें कि इंतज़ार का समय कम करने वाला मोड चालू होने पर, पिंग और इंतज़ार के समय की औसत वैल्यू कम हुई हो.
अन्य टेस्ट
ऊपर दिए गए टेस्ट को अलग-अलग एनवायरमेंट में दोहराएं. उदाहरण के लिए, घर पर या ऑफ़िस में.