يوسّع نظام التشغيل 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 اليدوية.
الاختبار الآلي
نفِّذ اختبارات 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
هاتف الجهاز قيد الاختبار وجهاز الكمبيوتر المخصّص للاختبار
- يجب أن يكون الجهاز قيد الاختبار متصلاً بنقطة الوصول عبر شبكة Wi-Fi.
- يجب أن يكون جهاز الكمبيوتر التجريبي متصلاً بنقطة الوصول عبر شبكة Wi-Fi أو الإيثرنت.
- يجب أن يكون جهاز الكمبيوتر المخصّص للاختبار متصلاً بالجهاز الخاضع للاختبار عبر USB.
اختبار فحص الاتصال للربط الصاعد
فعِّل وضع وقت الاستجابة المنخفض.
adb root
adb shell cmd wifi force-low-latency-mode enabled
تأكَّد من ربط الكمبيوتر بالهاتف من خلال "تصحيح أخطاء ADB". من واجهة سطر الأوامر ADB، أرسِل طلبات ping إلى البوابة بشكل مستمر لمدة 3 ساعات بفواصل زمنية تبلغ ثانية واحدة.
احفظ نتائج الاختبار في ملف نصي واستخدِم جدول بيانات أو نصًا برمجيًا بلغة Python لإنشاء رسم بياني مدرّج تكراري لنتائج اختبار وقت استجابة ping.
كرِّر الخطوات من 1 إلى 3 مع إيقاف وضع وقت الاستجابة.
adb root
adb shell cmd wifi force-low-latency-mode disabled
قارِن نتائج الاختبار للتأكّد من انخفاض متوسط قيمة وقت استجابة اختبار ping عند تفعيل وضع وقت الاستجابة المنخفض.
اختبار فحص الاتصال في اتجاه التنزيل
فعِّل وضع وقت الاستجابة المنخفض.
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
قارِن نتائج الاختبار للتأكّد من انخفاض متوسط قيمة وقت استجابة اختبار ping عند تفعيل وضع وقت الاستجابة المنخفض.
الاختبارات الأخرى
كرِّر الاختبارات أعلاه في بيئات مختلفة. على سبيل المثال، في المنزل أو في المكتب.