โหมด Wi-Fi เวลาในการตอบสนองต่ำ

Android 10 ขยาย Wi-Fi Lock API เพื่ออนุญาตให้แอปที่ไวต่อเวลาในการตอบสนองกำหนดค่า Wi-Fi เป็นโหมดเวลาในการตอบสนองต่ำ โหมดเวลาในการตอบสนองต่ำจะเริ่มเมื่อตรงกับเงื่อนไขทั้งหมดต่อไปนี้

  • Wi-Fi เปิดใช้อยู่และอุปกรณ์มีการเชื่อมต่ออินเทอร์เน็ต
  • แอปได้สร้างและรับล็อก Wi-Fi และกำลังทำงานอยู่เบื้องหน้า
  • หน้าจอเปิดอยู่

หากต้องการรองรับโหมดเวลาในการตอบสนองต่ำในอุปกรณ์ ผู้ผลิตอุปกรณ์ต้องอัปเดตไดรเวอร์ WLAN และ HAL ของผู้ให้บริการ ในโหมดเวลาในการตอบสนองต่ำ เฟรมเวิร์กจะปิดใช้โหมดประหยัดพลังงาน (หรือที่เรียกว่าสถานะ "สลีป" ในมาตรฐาน IEEE 802.11) อย่างชัดแจ้ง พารามิเตอร์การสแกนและโรมมิงในเลเยอร์ไดรเวอร์และเฟิร์มแวร์สามารถเพิ่มประสิทธิภาพเพื่อลดเวลาในการตอบสนองของ 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 จะต้องอยู่ในสถานะตื่นอยู่เสมอและพร้อมที่จะส่งหรือรับแพ็กเก็ตโดยมีความล่าช้าน้อยที่สุด

WifiLockManager

ปิดใช้ฟีเจอร์

หากต้องการปิดฟีเจอร์โหมดเวลาในการตอบสนองต่ำ ให้อัปเดตโค้ดที่สำคัญของ getFeatureSet() สำหรับ AIDL HAL หรือ getCapabilities_1_3() สำหรับ HIDL HAL เช่น capabilities & SET_LATENCY_MODE = 0 โดยที่ SET_LATENCY_MODE กำหนดไว้ในคำจำกัดความของ IWifiChip AIDL หรือ HIDL เมื่อปิดฟีเจอร์นี้ เฟรมเวิร์กจะปิดใช้การประหยัดพลังงานเฉพาะเมื่อเปิดโหมดเวลาในการตอบสนองต่ำอยู่

การตรวจสอบความถูกต้อง

หากต้องการทดสอบว่าโหมดเวลาในการตอบสนองต่ำทํางานเมื่อเปิดใช้หรือไม่ ให้ทําการทดสอบอัตโนมัติต่อไปนี้และการทดสอบเวลาในการตอบสนองของคําสั่ง ping ด้วยตนเอง

การทดสอบอัตโนมัติ

เรียกใช้การทดสอบ VTS และ CTS ต่อไปนี้

การทดสอบด้วยตนเอง

อุปกรณ์และสภาพแวดล้อมการทดสอบที่จำเป็น

สำหรับการทดสอบด้วยตนเอง คุณต้องตั้งค่าต่อไปนี้

  • จุดเข้าใช้งาน Wi-Fi (AP)
  • โทรศัพท์รุ่นต่ำกว่าการทดสอบ (DUT) และคอมพิวเตอร์ทดสอบ

    • DUT ต้องเชื่อมต่อกับจุดเข้าใช้งานผ่าน Wi-Fi
    • คอมพิวเตอร์ที่ใช้ทดสอบต้องเชื่อมต่อกับจุดเข้าใช้งานผ่าน Wi-Fi หรืออีเทอร์เน็ต
    • คอมพิวเตอร์ทดสอบต้องเชื่อมต่อกับ DUT ผ่าน USB
  1. เปิดใช้โหมดเวลาในการตอบสนองต่ำ

    adb root
    adb shell cmd wifi force-low-latency-mode enabled
    
  2. ตรวจสอบว่าคอมพิวเตอร์เชื่อมต่อกับโทรศัพท์ผ่าน ADB แล้ว จากเชลล์ ADB ให้ ping เกตเวย์อย่างต่อเนื่องเป็นเวลา 3 ชั่วโมงโดยเว้นช่วงเวลา 1 วินาที

  3. บันทึกเอาต์พุตทดสอบในไฟล์ข้อความและใช้สเปรดชีตหรือสคริปต์ Python เพื่อสร้างฮิสโตแกรมของผลการทดสอบเวลาในการตอบสนองของ ping

  4. ทำขั้นตอนที่ 1 ถึง 3 ซ้ำโดยปิดใช้โหมดเวลาในการตอบสนอง

    adb root
    adb shell cmd wifi force-low-latency-mode disabled
    
  5. เปรียบเทียบผลลัพธ์การทดสอบเพื่อให้แน่ใจว่าค่าเวลาในการตอบสนองโดยเฉลี่ยของ ping ลดลงเมื่อเปิดใช้โหมดเวลาในการตอบสนองต่ำ

  1. เปิดใช้โหมดความหน่วงต่ำ

    adb root
    adb shell cmd wifi force-low-latency-mode enabled
    
  2. จากบรรทัดคำสั่งของคอมพิวเตอร์ที่ใช้ทดสอบ ให้ ping ที่อยู่ IP ของโทรศัพท์อย่างต่อเนื่องเป็นเวลา 3 ชั่วโมงโดยเว้นระยะ 1 วินาที

  3. บันทึกเอาต์พุตการทดสอบเป็นไฟล์ข้อความ และใช้สเปรดชีตหรือสคริปต์ Python เพื่อสร้างผังความถี่ของผลลัพธ์การทดสอบเวลาในการตอบสนองของคําสั่ง ping

  4. ทำขั้นตอนที่ 1 ถึง 3 ซ้ำโดยปิดใช้โหมดเวลาในการตอบสนอง

    adb root
    adb shell cmd wifi force-low-latency-mode disabled
    
  5. เปรียบเทียบผลการทดสอบเพื่อให้มั่นใจว่าค่าเวลาในการตอบสนองของคําสั่ง ping โดยเฉลี่ยลดลงเมื่อเปิดใช้โหมดเวลาในการตอบสนองต่ำ

การทดสอบอื่นๆ

ทําการทดสอบข้างต้นซ้ำในสภาพแวดล้อมต่างๆ เช่น ที่บ้านหรือที่ทำงาน