Android 10, ওয়াই-ফাই লক API-কে আরও উন্নত করেছে যাতে লেটেন্সি-সেনসিটিভ অ্যাপ, ওয়াই-ফাইকে লো-লেটেন্সি মোডে কনফিগার করতে পারে। নিম্ন লেটেন্সি মোড তখনই শুরু হয় যখন নিম্নলিখিত সব শর্ত পূরণ হয়:
- ওয়াই-ফাই চালু আছে এবং ডিভাইসে ইন্টারনেট অ্যাক্সেস আছে।
- অ্যাপটি একটি ওয়াই-ফাই লক তৈরি ও অ্যাকোয়ার করেছে এবং ফোরগ্রাউন্ডে চলছে।
- স্ক্রিন চালু আছে।
ডিভাইসে কম লেটেন্সি মোড কাজ করার জন্য, ডিভাইস প্রস্তুতকারকদের অবশ্যই WLAN ড্রাইভার ও ভেন্ডর HAL আপডেট করতে হবে। লো-লেটেন্সি মোডে, ফ্রেমওয়ার্কের মাধ্যমে পাওয়ার সেভ (IEEE 802.11 স্ট্যান্ডার্ডে ডোজ স্টেট হিসেবেও পরিচিত) স্পষ্টভাবে বন্ধ করা থাকে। ওয়াই-ফাই লেটেন্সি আরও কমাতে, ড্রাইভার ও ফার্মওয়্যার লেয়ারে স্ক্যানিং ও রোমিং প্যারামিটার অপ্টিমাইজ করা যেতে পারে। সঠিক অপ্টিমাইজেশন হল নির্দিষ্ট প্রয়োগ।
Android-এ হাই-পারফর্ম্যান্স ওয়াই-ফাই লক মোড (API লেভেল 12-এ চালু করা হয়েছে) আছে যা লো-লেটেন্সি মোড থেকে আলাদা।
প্রয়োগ
ওয়াই-ফাই লো-লেটেন্সি মোড ফিচারকে সাপোর্ট করতে, নিম্নলিখিত IWifiChip ফাংশনের জন্য
ইমপ্লিমেন্টেশন প্রদান করুন।
AIDL HAL-এ:
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) এবং কম্প্যাটিবিলিটি টেস্ট স্যুট (CTS) টেস্ট চালিয়ে অটোমেটিক টেস্টিং পারফর্ম করুন:
- 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:
cts/tests/tests/net/src/android/net/wifi/cts/WifiLockTest.java
ম্যানুয়াল টেস্টিং
প্রয়োজনীয় টেস্ট ইকুইপমেন্ট ও এনভায়রনমেন্ট
ম্যানুয়াল টেস্টিংয়ের জন্য, নিম্নলিখিত সেট-আপ প্রয়োজন:
- ওয়াই-ফাই অ্যাক্সেস পয়েন্ট (AP)
- ডিভাইস-আন্ডার-টেস্ট (DUT) ফোন এবং টেস্ট কম্পিউটার
- DUT অবশ্যই ওয়াই-ফাইয়ের মাধ্যমে অ্যাক্সেস পয়েন্টের সাথে কানেক্ট করা থাকতে হবে।
- টেস্ট কম্পিউটারকে ওয়াই-ফাই বা ইথারনেটের মাধ্যমে অ্যাক্সেস পয়েন্টের সাথে কানেক্ট করতে হবে।
- পরীক্ষা করা কম্পিউটারটি অবশ্যই USB-এর মাধ্যমে DUT-এর সাথে কানেক্ট করতে হবে।
আপলিঙ্ক পিং টেস্ট
লো-লেটেন্সি মোড চালু করুন।
adb root adb shell cmd wifi force-low-latency-mode enabledআপনার কম্পিউটার Android Debug Bridge (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টেস্ট কম্পিউটারের কমান্ড লাইন থেকে, ১ সেকেন্ডের ব্যবধানে ৩ ঘণ্টা ধরে ফোনের IP অ্যাড্রেসে একটানা পিং করুন।
টেস্ট আউটপুট একটি টেক্সট ফাইলে সেভ করুন এবং পিং লেটেন্সি টেস্ট ফলাফলের হিস্টোগ্রাম তৈরি করতে স্প্রেডশিট বা Python স্ক্রিপ্ট ব্যবহার করুন।
লেটেন্সি মোড বন্ধ করে ১ থেকে ৩ নম্বর ধাপ আবার করুন।
adb root adb shell cmd wifi force-low-latency-mode disabledকম লেটেন্সি মোড চালু করলে পিং লেটেন্সির গড় ভ্যালু কমে যায় কিনা তা যাচাই করতে পরীক্ষার ফলাফল তুলনা করুন।
অন্য পরীক্ষা
আলাদা আলাদা এনভায়রনমেন্টে আগের পরীক্ষাগুলি আবার করুন। যেমন, বাড়িতে বা অফিসে।