Chế độ độ trễ thấp của Wi-Fi

Android 10 mở rộng API khóa Wi-Fi để cho phép các ứng dụng nhạy cảm với độ trễ định cấu hình Wi-Fi ở chế độ có độ trễ thấp . Chế độ độ trễ thấp bắt đầu khi đáp ứng tất cả các điều kiện sau:

  • Wi-Fi đã được bật và thiết bị có quyền truy cập Internet.
  • Ứng dụng đã tạo và có được khóa Wi-Fi và đang chạy ở nền trước.
  • Màn hình đang bật.

Để hỗ trợ chế độ độ trễ thấp trên thiết bị, nhà sản xuất thiết bị phải cập nhật trình điều khiển WLAN và nhà cung cấp HAL. Ở chế độ có độ trễ thấp, tính năng tiết kiệm năng lượng (còn được gọi là trạng thái ngủ gật trong tiêu chuẩn IEEE 802.11) bị khung này vô hiệu hóa rõ ràng. Các tham số quét và chuyển vùng trong lớp trình điều khiển và chương trình cơ sở có thể được tối ưu hóa để giảm độ trễ Wi-Fi hơn nữa. Việc tối ưu hóa chính xác được thực hiện cụ thể.

Android có chế độ khóa Wi-Fi hiệu suất cao (được giới thiệu ở API cấp 12) tách biệt với chế độ có độ trễ thấp.

Thực hiện

Để hỗ trợ tính năng chế độ độ trễ thấp của Wi-Fi, hãy cung cấp cách triển khai cho các chức năng IWifiChip sau.

Trong AIDL HAL:

  • int getFeatureSet()
  • void setLatencyMode(in LatencyMode mode)

Trong HIDL HAL (1.3 hoặc mới hơn):

  • getCapabilities_1_3() generates (WifiStatus status, bitfield<ChipCapabilityMask> capabilities)
  • setLatencyMode(LatencyMode mode) generates (WifiStatus status)

Bạn có thể tìm thấy triển khai tham chiếu trong wifi_legacy_hal.cpp với các chức năng sau:

  • 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)

Ở chế độ có độ trễ thấp, tính năng tiết kiệm năng lượng bị WifiLockManager tắt rõ ràng trong khung Android. Để hỗ trợ điều này, trình điều khiển WLAN phải hỗ trợ lệnh NL80211, NL80211_CMD_SET_POWER_SAVE , để bật và tắt tính năng tiết kiệm năng lượng. Khi tắt tính năng tiết kiệm năng lượng của Wi-Fi, hệ thống Wi-Fi phải ở trạng thái hoạt động và sẵn sàng gửi hoặc nhận gói với độ trễ tối thiểu.

Vô hiệu hóa tính năng

Để tắt tính năng chế độ độ trễ thấp, hãy cập nhật mã cơ bản của getFeatureSet() cho AIDL HAL hoặc getCapabilities_1_3() cho HIDL HAL, sao cho capabilities & SET_LATENCY_MODE = 0 , trong đó SET_LATENCY_MODE được xác định trong định nghĩa IWifiChip AIDL hoặc HIDL . Khi tính năng này bị tắt, khung chỉ tắt tính năng tiết kiệm năng lượng khi chế độ độ trễ thấp được kích hoạt.

Thẩm định

Để kiểm tra xem chế độ có độ trễ thấp có hoạt động khi được bật hay không, hãy chạy các bài kiểm tra tự động sau và kiểm tra độ trễ ping thủ công.

Kiểm tra tự động

Chạy các bài kiểm tra VTS và CTS sau:

Kiểm tra bằng tay

Thiết bị và môi trường thử nghiệm cần thiết

Để kiểm tra thủ công, cần phải thiết lập sau:

  • Điểm truy cập Wi-Fi (AP)
  • Điện thoại và máy tính kiểm tra thiết bị (DUT)

    • DUT phải được kết nối với điểm truy cập qua Wi-Fi.
    • Máy tính thử nghiệm phải được kết nối với điểm truy cập qua Wi-Fi hoặc Ethernet.
    • Máy tính kiểm tra phải được kết nối với DUT qua USB.
  1. Bật chế độ độ trễ thấp.

    adb root
    adb shell cmd wifi force-low-latency-mode enabled
    
  2. Đảm bảo máy tính của bạn được kết nối với điện thoại thông qua ADB. Từ trình bao ADB, ping cổng liên tục trong 3 giờ, mỗi lần 1 giây.

  3. Lưu kết quả kiểm tra vào tệp văn bản và sử dụng bảng tính hoặc tập lệnh Python để tạo biểu đồ về kết quả kiểm tra độ trễ ping.

  4. Lặp lại các bước từ 1 đến 3 với chế độ trễ bị tắt.

    adb root
    adb shell cmd wifi force-low-latency-mode disabled
    
  5. So sánh kết quả kiểm tra để đảm bảo giá trị độ trễ ping trung bình giảm đi khi bật chế độ độ trễ thấp.

  1. Bật chế độ có độ trễ thấp.

    adb root
    adb shell cmd wifi force-low-latency-mode enabled
    
  2. Từ dòng lệnh của máy tính thử nghiệm, ping địa chỉ IP của điện thoại liên tục trong 3 giờ, mỗi lần 1 giây.

  3. Lưu kết quả kiểm tra vào tệp văn bản và sử dụng bảng tính hoặc tập lệnh Python để tạo biểu đồ về kết quả kiểm tra độ trễ ping.

  4. Lặp lại các bước từ 1 đến 3 với chế độ trễ bị tắt.

    adb root
    adb shell cmd wifi force-low-latency-mode disabled
    
  5. So sánh kết quả kiểm tra để đảm bảo giá trị độ trễ ping trung bình giảm đi khi bật chế độ độ trễ thấp.

Các xét nghiệm khác

Lặp lại các thử nghiệm trên trong các môi trường khác nhau. Ví dụ, ở nhà hoặc ở văn phòng.