يوسّع نظام التشغيل Android 10 نطاق واجهة برمجة التطبيقات الخاصة بقفل Wi-Fi للسماح للتطبيقات التي تتطلّب سرعة استجابة عالية بإعداد شبكة Wi-Fi على وضع الاستجابة السريعة. يبدأ وضع "وقت الاستجابة المنخفض" عند استيفاء جميع الشروط التالية:
- شبكة Wi-Fi مفعَّلة والجهاز متصل بالإنترنت.
- أنشأ التطبيق قفل Wi-Fi وحصل عليه، وهو يعمل في المقدّمة.
- الشاشة قيد التفعيل.
لإتاحة وضع زمن الاستجابة المنخفض على الأجهزة، على الشركات المصنّعة للأجهزة تعديل برنامج تشغيل شبكة WLAN وHAL الخاص بالمورّد. في وضع زمن الاستجابة المنخفض، يتم إيقاف ميزة "توفير الطاقة" (المعروفة أيضًا باسم حالة السكون في معيار IEEE 802.11) بشكل صريح من خلال إطار العمل. يمكن تحسين مَعلمات البحث والتجوال في طبقتَي برنامج التشغيل والبرامج الثابتة لتقليل وقت استجابة شبكة Wi-Fi بشكل أكبر. تختلف التحسينات الدقيقة حسب التنفيذ.
يتضمّن Android وضع قفل Wi-Fi عالي الأداء (تم طرحه في المستوى 12 من واجهة برمجة التطبيقات) وهو منفصل عن وضع معدّل نقل البيانات المنخفض.
التنفيذ
لتفعيل ميزة "وضع زمن الاستجابة المنخفض لشبكة Wi-Fi"، يجب توفير عمليات تنفيذ للدالتَين IWifiChip التاليتَين.
في AIDL HAL:
int getFeatureSet()void setLatencyMode(in LatencyMode mode)
في طبقة تجريد الأجهزة (HAL) لواجهة HIDL (الإصدار 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() في AIDL HAL أو
getCapabilities_1_3() في HIDL HAL،
بحيث يكون capabilities & SET_LATENCY_MODE = 0، حيث يتم تحديد
SET_LATENCY_MODE في تعريف IWifiChip AIDL أو HIDL.
عند إيقاف هذه الميزة، لا يوقف إطار العمل ميزة توفير الطاقة إلا عندما يكون وضع زمن الاستجابة المنخفض مفعّلاً.
التحقُّق
لاختبار ما إذا كان وضع وقت الاستجابة المنخفض يعمل عند تفعيله، نفِّذ الاختبارات المبرمَجة التالية واختبارات وقت استجابة ping اليدوية.
الاختبار الآلي
إجراء اختبارات مبرمَجة من خلال تشغيل اختبارات Vendor Test Suite (VTS) وCompatibility Test Suite (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
- هاتف الجهاز قيد الاختبار وجهاز الكمبيوتر الاختباري
- يجب أن يكون الجهاز قيد الاختبار متصلاً بنقطة الوصول عبر شبكة Wi-Fi.
- يجب أن يكون جهاز الكمبيوتر التجريبي متصلاً بنقطة الوصول عبر شبكة Wi-Fi أو الإيثرنت.
- يجب أن يكون جهاز الكمبيوتر المخصّص للاختبار متصلاً بالجهاز الخاضع للاختبار عبر USB.
اختبار فحص الاتصال للربط الصاعد
فعِّل وضع وقت الاستجابة المنخفض.
adb root adb shell cmd wifi force-low-latency-mode enabledتأكَّد من أنّ جهاز الكمبيوتر متصل بالهاتف من خلال Android Debug Bridge (ADB). من واجهة ADB، أرسِل طلبات ping إلى البوابة باستمرار لمدة 3 ساعات بفواصل زمنية مدتها ثانية واحدة.
احفظ نتائج الاختبار في ملف نصي واستخدِم جدول بيانات أو نصًا برمجيًا بلغة Python لإنشاء رسم بياني مدرّج تكراري لنتائج اختبار وقت استجابة ping.
كرِّر الخطوات من 1 إلى 3 مع إيقاف وضع وقت الاستجابة المنخفض.
adb root adb shell cmd wifi force-low-latency-mode disabledقارِن نتائج الاختبار للتأكّد من أنّ متوسط قيمة وقت استجابة اختبار الاتصال قد انخفض عند تفعيل وضع وقت الاستجابة المنخفض.
اختبار فحص الاتصال في اتجاه التنزيل
فعِّل وضع وقت الاستجابة المنخفض.
adb root adb shell cmd wifi force-low-latency-mode enabledمن سطر الأوامر على جهاز الكمبيوتر المخصّص للاختبار، أرسِل طلبات ping إلى عنوان IP الخاص بالهاتف بشكل مستمر لمدة 3 ساعات بفواصل زمنية تبلغ ثانية واحدة.
احفظ نتائج الاختبار في ملف نصي واستخدِم جدول بيانات أو نصًا برمجيًا بلغة Python لإنشاء رسم بياني مدرّج تكراري لنتائج اختبار وقت استجابة ping.
كرِّر الخطوات من 1 إلى 3 مع إيقاف وضع وقت الاستجابة المنخفض.
adb root adb shell cmd wifi force-low-latency-mode disabledقارِن نتائج الاختبار للتأكّد من أنّ متوسط قيمة وقت استجابة اختبار الاتصال قد انخفض عند تفعيل وضع وقت الاستجابة المنخفض.
الاختبارات الأخرى
كرِّر الاختبارات السابقة في بيئات مختلفة. على سبيل المثال، في المنزل أو في المكتب.