حالت تاخیر کم Wi-Fi

Android 10 API قفل Wi-Fi را گسترش می‌دهد تا به برنامه‌های حساس به تأخیر اجازه دهد Wi-Fi را در حالت تأخیر کم پیکربندی کنند. حالت تاخیر کم زمانی شروع می شود که تمام شرایط زیر برآورده شود:

  • Wi-Fi فعال است و دستگاه به اینترنت دسترسی دارد.
  • این برنامه یک قفل Wi-Fi ایجاد کرده و به دست آورده است و در پیش زمینه در حال اجرا است.
  • صفحه نمایش روشن است.

برای پشتیبانی از حالت تاخیر کم در دستگاه ها، سازندگان دستگاه باید درایور WLAN و فروشنده HAL را به روز کنند. در حالت تأخیر کم، صرفه جویی در انرژی (که در استاندارد IEEE 802.11 نیز به عنوان حالت doze شناخته می شود) به صراحت توسط چارچوب غیرفعال می شود. پارامترهای اسکن و رومینگ در لایه های درایور و میان افزار را می توان برای کاهش بیشتر تأخیر وای فای بهینه کرد. بهینه سازی های دقیق پیاده سازی خاص هستند.

اندروید دارای یک حالت قفل Wi-Fi با کارایی بالا (معرفی شده در سطح API 12) است که از حالت تاخیر کم جدا است.

پیاده سازی

برای پشتیبانی از ویژگی حالت کم تأخیر Wi-Fi، پیاده سازی هایی را برای عملکردهای 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)

در حالت تأخیر کم، صرفه جویی در مصرف انرژی به صراحت توسط WifiLockManager در چارچوب اندروید غیرفعال شده است. برای پشتیبانی از این، درایور WLAN باید از دستور NL80211، NL80211_CMD_SET_POWER_SAVE ، برای فعال و غیرفعال کردن ذخیره انرژی پشتیبانی کند. وقتی ذخیره انرژی Wi-Fi غیرفعال است، سیستم Wi-Fi باید در حالت بیدار بماند و آماده ارسال یا دریافت بسته ها با حداقل تاخیر باشد.

غیرفعال کردن ویژگی

برای خاموش کردن ویژگی حالت تاخیر کم، کد زیربنایی getFeatureSet() را برای AIDL HAL یا getCapabilities_1_3() برای HIDL HAL به‌روزرسانی کنید، به طوری که capabilities & SET_LATENCY_MODE = 0 ، که در آن SET_LATENCY_MODE در تعریف IWifiChip یا IWifi تعریف شده است. . هنگامی که این ویژگی غیرفعال است، چارچوب صرفه جویی در مصرف انرژی را فقط زمانی غیرفعال می کند که حالت تاخیر کم فعال باشد.

اعتبار سنجی

برای آزمایش اینکه حالت کم تأخیر در صورت فعال بودن کار می‌کند، آزمایش‌های خودکار زیر و آزمایش‌های تأخیر پینگ دستی را اجرا کنید.

تست خودکار

تست های VTS و CTS زیر را اجرا کنید:

تست دستی

تجهیزات و محیط آزمایش مورد نیاز

برای تست دستی، تنظیمات زیر مورد نیاز است:

  • نقطه دسترسی Wi-Fi (AP)
  • تلفن و رایانه آزمایشی دستگاه تحت آزمایش (DUT).

    • DUT باید از طریق Wi-Fi به نقطه دسترسی متصل شود.
    • رایانه آزمایشی باید از طریق Wi-Fi یا اترنت به نقطه دسترسی متصل باشد.
    • کامپیوتر تست باید از طریق USB به DUT متصل شود.
  1. حالت تأخیر کم را فعال کنید.

    adb root
    adb shell cmd wifi force-low-latency-mode enabled
    
  2. مطمئن شوید که رایانه شما از طریق ADB به تلفن متصل است. از پوسته ADB، دروازه را به طور مداوم به مدت 3 ساعت در فواصل زمانی 1 ثانیه پینگ کنید.

  3. خروجی تست را در یک فایل متنی ذخیره کنید و از یک صفحه گسترده یا یک اسکریپت پایتون برای ایجاد یک هیستوگرام از نتایج آزمون تاخیر پینگ استفاده کنید.

  4. مراحل 1 تا 3 را با غیرفعال بودن حالت تأخیر تکرار کنید.

    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. از خط فرمان رایانه آزمایشی، آدرس IP تلفن را به طور مداوم به مدت 3 ساعت در فواصل زمانی 1 ثانیه پینگ کنید.

  3. خروجی تست را در یک فایل متنی ذخیره کنید و از یک صفحه گسترده یا یک اسکریپت پایتون برای ایجاد یک هیستوگرام از نتایج آزمون تاخیر پینگ استفاده کنید.

  4. مراحل 1 تا 3 را با غیرفعال بودن حالت تأخیر تکرار کنید.

    adb root
    adb shell cmd wifi force-low-latency-mode disabled
    
  5. نتایج آزمایش را با هم مقایسه کنید تا مطمئن شوید که مقدار تأخیر متوسط ​​پینگ با فعال کردن حالت تأخیر کم کاهش می‌یابد.

تست های دیگر

تست های فوق را در محیط های مختلف تکرار کنید. مثلا در خانه یا اداره.