يضيف نظام التشغيل Android 10 واجهة برمجة التطبيقات Wi-Fi lock API للسماح للتطبيقات الحساسة للوقت الاستجابة بضبط Wi-Fi على وضع وقت استجابة منخفض. يبدأ وضع وقت الاستجابة المنخفض عند استيفاء جميع الشروط التالية:
- شبكة Wi-Fi مفعَّلة والجهاز متصل بالإنترنت.
- أنشأ التطبيق قفل Wi-Fi وحصل عليه، وهو يعمل في المقدمة.
- تكون الشاشة قيد التفعيل.
لتفعيل وضع الاستجابة المنخفضة على الأجهزة، على الشركات المصنّعة للأجهزة تحديث برنامج تشغيل WLAN وواجهة HAL الخاصة بالمورّد. في وضع الاستجابة المنخفضة، يتم إيقاف ميزة "توفير الطاقة" (المعروفة أيضًا باسم حالة السكون في معيار IEEE 802.11) صراحةً من خلال الإطار. يمكن تحسين مَعلمات البحث والتجوال في طبقتَي برنامج التشغيل والبرامج الثابتة لخفض وقت استجابة Wi-Fi بشكل أكبر. ترتبط التحسينات الدقيقة بطريقة التنفيذ.
يتضمّن Android وضع قفل Wi-Fi عالي الأداء (تم طرحه في المستوى 12 لواجهة برمجة التطبيقات) وهو منفصل عن وضع وقت الاستجابة المنخفض.
التنفيذ
لتفعيل ميزة "وضع Wi-Fi بوقت استجابة منخفض"، يجب توفير عمليات تنفيذ لوظائف IWifiChip
التالية.
في واجهة برمجة التطبيقات لـ AIDL:
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
في إطار عمل Android.
ولتفعيل هذه الميزة، يجب أن يتيح برنامج تشغيل WLAN استخدام الأمر NL80211،
NL80211_CMD_SET_POWER_SAVE
، لتفعيل ميزة "توفير الطاقة" وإيقافها. عند إيقاف ميزة "توفير طاقة Wi-Fi"، يجب أن يظل نظام Wi-Fi في حالة "التشغيل" وأن يكون جاهزًا لتلقّي الحِزم أو إرسالها بأقل قدر من التأخير.
إيقاف الميزة
لإيقاف ميزة وضع وقت الاستجابة المنخفض، عدِّل الرمز الأساسي لملف getFeatureSet()
لواجهة HAL لبروتوكول AIDL أو ملف getCapabilities_1_3()
لواجهة HAL لبروتوكول HIDL،
بحيث يكون 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
الاختبار اليدوي
معدات الاختبار والبيئة المطلوبة
للاختبار اليدوي، يجب إجراء الإعدادات التالية:
- نقطة وصول Wi-Fi
الهاتف المعني بالاختبار وجهاز الكمبيوتر المخصّص للاختبار
- يجب أن يكون جهاز DUT متصلاً بنقطة الوصول عبر شبكة Wi-Fi.
- يجب أن يكون الكمبيوتر التجريبي متصلاً بنقطة الوصول عبر Wi-Fi أو إيثرنت.
- يجب توصيل جهاز الكمبيوتر الاختباري بوحدة التحكّم في البيانات عبر USB.
اختبار فحص الاتصال بالإنترنت
فعِّل وضع وقت الاستجابة المنخفض.
adb root
adb shell cmd wifi force-low-latency-mode enabled
تأكَّد من اتصال الكمبيوتر بالهاتف من خلال ADB. من ملف ADB shell، يمكنك إرسال طلبات فحص الاتصال بالبوابة باستمرار لمدة 3 ساعات بفواصل زمنية تبلغ ثانية واحدة.
احفظ نتيجة الاختبار في ملف نصي واستخدِم جدول بيانات أو ملف نصي بتنسيق Python لإنشاء رسم بياني هرمي لنتائج اختبار وقت استجابة طلب الاتصال.
كرِّر الخطوات من 1 إلى 3 مع إيقاف وضع "وقت الاستجابة".
adb root
adb shell cmd wifi force-low-latency-mode disabled
قارِن نتائج الاختبار للتأكّد من انخفاض متوسط قيمة وقت استجابة طلب البيانات عند تفعيل وضع وقت الاستجابة المنخفض.
اختبار فحص الاتصال عبر الرابط للبيانات
فعِّل وضع وقت الاستجابة المنخفض.
adb root
adb shell cmd wifi force-low-latency-mode enabled
من سطر الأوامر في جهاز الكمبيوتر التجريبي، يمكنك اختبار عنوان IP للهاتف باستمرار لمدة 3 ساعات بفواصل زمنية تبلغ ثانية واحدة.
احفظ نتيجة الاختبار في ملف نصي واستخدِم جدول بيانات أو ملف نصي بتنسيق Python لإنشاء رسم بياني هرمي لنتائج اختبار وقت استجابة طلب الاتصال.
كرِّر الخطوات من 1 إلى 3 مع إيقاف وضع "وقت الاستجابة".
adb root
adb shell cmd wifi force-low-latency-mode disabled
قارِن نتائج الاختبار للتأكّد من انخفاض متوسط قيمة وقت استجابة طلب البيانات عند تفعيل وضع وقت الاستجابة المنخفض.
الاختبارات الأخرى
كرِّر الاختبارات أعلاه في بيئات مختلفة. على سبيل المثال، في المنزل أو المكتب