يضيف نظام التشغيل 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
قارن نتائج الاختبار للتأكد من انخفاض متوسط قيمة وقت استجابة فحص الفحص عند تفعيل وضع وقت الاستجابة المنخفض.
الاختبارات الأخرى
كرِّر الاختبارات أعلاه في بيئات مختلفة. على سبيل المثال، في المنزل أو المكتب.