एंड्रॉइड 10 विलंबता-संवेदनशील ऐप्स को वाई-फाई को कम-विलंबता मोड में कॉन्फ़िगर करने की अनुमति देने के लिए वाई-फाई लॉक एपीआई का विस्तार करता है। निम्न-विलंबता मोड तब प्रारंभ होता है जब निम्नलिखित सभी शर्तें पूरी हो जाती हैं:
- वाई-फ़ाई सक्षम है और डिवाइस में इंटरनेट एक्सेस है।
- ऐप ने वाई-फाई लॉक बनाया और हासिल कर लिया है, और अग्रभूमि में चल रहा है।
- स्क्रीन चालू है.
उपकरणों पर कम-विलंबता मोड का समर्थन करने के लिए, डिवाइस निर्माताओं को WLAN ड्राइवर और विक्रेता HAL को अपडेट करना होगा। कम-विलंबता मोड में, पावर सेव (जिसे आईईईई 802.11 मानक में डोज़ स्थिति के रूप में भी जाना जाता है) फ्रेमवर्क द्वारा स्पष्ट रूप से अक्षम है। वाई-फ़ाई विलंबता को और कम करने के लिए ड्राइवर और फ़र्मवेयर परतों में स्कैनिंग और रोमिंग पैरामीटर को अनुकूलित किया जा सकता है। सटीक अनुकूलन कार्यान्वयन विशिष्ट हैं।
एंड्रॉइड में एक उच्च-प्रदर्शन वाई-फाई लॉक मोड है (एपीआई स्तर 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)
कम-विलंबता मोड में, एंड्रॉइड फ्रेमवर्क में 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 परिभाषा में परिभाषित किया गया है . जब यह सुविधा अक्षम हो जाती है, तो फ़्रेमवर्क पावर सेव को केवल तभी अक्षम करता है जब कम-विलंबता मोड सक्रिय होता है।
मान्यकरण
यह जांचने के लिए कि सक्षम होने पर निम्न-विलंबता मोड काम करता है, निम्नलिखित स्वचालित परीक्षण और मैन्युअल पिंग विलंबता परीक्षण चलाएँ।
स्वचालित परीक्षण
निम्नलिखित वीटीएस और सीटीएस परीक्षण चलाएँ:
- वीटीएस (एआईडीएल):
hardware/interfaces/wifi/aidl/vts/functional/wifi_chip_aidl_test.cpp
- वीटीएस (एचआईडीएल):
hardware/interfaces/wifi/1.3/vts/functional/wifi_chip_hidl_test.cpp
- सीटीएस:
cts/tests/tests/net/src/android/net/wifi/cts/WifiLockTest.java
मैन्युअल परीक्षण
आवश्यक परीक्षण उपकरण और वातावरण
मैन्युअल परीक्षण के लिए, निम्नलिखित सेटअप आवश्यक है:
- वाई-फाई एक्सेस प्वाइंट (एपी)
डिवाइस-अंडर-टेस्ट (DUT) फ़ोन और परीक्षण कंप्यूटर
- DUT को वाई-फ़ाई पर एक्सेस प्वाइंट से कनेक्ट किया जाना चाहिए।
- परीक्षण कंप्यूटर वाई-फाई या ईथरनेट पर एक्सेस प्वाइंट से जुड़ा होना चाहिए।
- परीक्षण कंप्यूटर को USB पर DUT से कनेक्ट किया जाना चाहिए।
अपलिंक पिंग परीक्षण
निम्न विलंबता मोड सक्षम करें.
adb root
adb shell cmd wifi force-low-latency-mode enabled
सुनिश्चित करें कि आपका कंप्यूटर ADB के माध्यम से फ़ोन से जुड़ा है। एडीबी शेल से, गेटवे को 1 सेकंड के अंतराल पर 3 घंटे तक लगातार पिंग करें।
परीक्षण आउटपुट को एक टेक्स्ट फ़ाइल में सहेजें और पिंग विलंबता परीक्षण परिणामों का हिस्टोग्राम उत्पन्न करने के लिए एक स्प्रेडशीट या पायथन स्क्रिप्ट का उपयोग करें।
विलंबता मोड अक्षम होने पर चरण 1 से 3 तक दोहराएँ।
adb root
adb shell cmd wifi force-low-latency-mode disabled
यह सुनिश्चित करने के लिए परीक्षण परिणामों की तुलना करें कि निम्न-विलंबता मोड सक्षम होने पर औसत पिंग विलंबता मान कम हो जाता है।
डाउनलिंक पिंग परीक्षण
निम्न-विलंबता मोड सक्षम करें.
adb root
adb shell cmd wifi force-low-latency-mode enabled
परीक्षण कंप्यूटर की कमांड लाइन से, फ़ोन के आईपी पते को 1 सेकंड के अंतराल पर 3 घंटे तक लगातार पिंग करें।
परीक्षण आउटपुट को एक टेक्स्ट फ़ाइल में सहेजें और पिंग विलंबता परीक्षण परिणामों का हिस्टोग्राम उत्पन्न करने के लिए एक स्प्रेडशीट या पायथन स्क्रिप्ट का उपयोग करें।
विलंबता मोड अक्षम होने पर चरण 1 से 3 तक दोहराएँ।
adb root
adb shell cmd wifi force-low-latency-mode disabled
यह सुनिश्चित करने के लिए परीक्षण परिणामों की तुलना करें कि निम्न-विलंबता मोड सक्षम होने पर औसत पिंग विलंबता मान कम हो जाता है।
अन्य परीक्षण
उपरोक्त परीक्षणों को विभिन्न वातावरणों में दोहराएँ। उदाहरण के लिए, घर पर या कार्यालय में.