מצב זמן אחזור קצר ב-Wi-Fi

מערכת Android 10 מרחיבה את ממשק ה-API לנעילת Wi-Fi כדי לאפשר אפליקציות שרגישות לזמן אחזור כדי להגדיר Wi-Fi זמן אחזור קצר . מצב זמן האחזור הקצר מתחיל כשכל התנאים הבאים מתקיימים:

  • ה-Wi-Fi מופעל ולמכשיר יש גישה לאינטרנט.
  • האפליקציה יצרה ויצרה נעילת Wi-Fi, והיא פועלת ב בחזית.
  • המסך פועל.

כדי לתמוך במצב זמן אחזור קצר במכשירים, יצרני המכשירים צריכים לעדכן את HAL של מנהל התקן WLAN וספק. במצב זמן אחזור מהיר, מצב חיסכון בסוללה (נקרא גם מצב 'שינה' בתקן IEEE 802.11) מושבת במפורש על ידי ה-framework. ניתן לבחור את הפרמטרים של הסריקה והנדידה בשכבות של מנהלי ההתקנים והקושחה עברו אופטימיזציה לקיצור זמן האחזור של ה-Wi-Fi. האופטימיזציה המדויקת ספציפי להטמעה.

ב-Android יש מצב נעילת 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 ב-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. כשהתכונה הזו מושבתת, ה-framework משבית את החיסכון בסוללה רק כשמצב זמן האחזור הנמוך פעיל.

אימות

כדי לבדוק שמצב זמן אחזור קצר פועל כשהוא מופעל, מריצים את הפעולות האוטומטיות הבאות ובדיקות זמן אחזור של פינגים ידניים.

בדיקות אוטומטיות

מריצים את בדיקות VTS ו-CTS הבאות:

בדיקה ידנית

ציוד הבדיקה והסביבה הנדרשים

כדי לבצע בדיקות ידניות, יש צורך בהגדרות הבאות:

  • נקודת גישה (AP) ל-Wi-Fi
  • טלפון ומחשב בדיקה של מכשיר שנמצא בבדיקה (DUT)

    • ה-DUT צריך להיות מחובר לנקודת הגישה באמצעות Wi-Fi.
    • מחשב הבדיקה צריך להיות מחובר לנקודת הגישה באמצעות Wi-Fi, או אתרנט.
    • צריך לחבר את מחשב הבדיקה ל-DUT באמצעות USB.
  1. הפעלת מצב זמן אחזור קצר.

    adb root
    adb shell cmd wifi force-low-latency-mode enabled
    
  2. צריך לוודא שהמחשב מחובר לטלפון באמצעות ADB. מאת מעטפת ה-ADB, מבצעת פינג לשער באופן רציף במשך 3 שעות בשנייה במרווחים.

  3. שומרים את פלט הבדיקה בקובץ טקסט ומשתמשים בגיליון אלקטרוני או ב-Python כדי ליצור היסטוגרמה של תוצאות הבדיקה של זמן האחזור של פינג.

  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 שעות במרווחי זמן של שנייה אחת.

  3. שומרים את פלט הבדיקה בקובץ טקסט ומשתמשים בגיליון אלקטרוני או ב-Python כדי ליצור היסטוגרמה של תוצאות הבדיקה של זמן האחזור של פינג.

  4. חוזרים על שלבים 1 עד 3 כשמצב זמן האחזור מושבת.

    adb root
    adb shell cmd wifi force-low-latency-mode disabled
    
  5. השוו את תוצאות הבדיקה כדי לוודא שערך זמן האחזור הממוצע של הפינג מופחת כאשר מצב זמן האחזור הנמוך מופעל.

בדיקות אחרות

חוזרים על הבדיקות שצוינו למעלה בסביבות שונות. לדוגמה, ב- בבית או במשרד.