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

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

  • Wi-Fi đang bật và thiết bị có thể truy cập Internet.
  • Ứng dụng này đã tạo và có một khoá Wi-Fi và đang chạy trong 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à HAL của nhà cung cấp. Ở chế độ độ trễ thấp, tính năng tiết kiệm pin (còn được gọi là trạng thái nghỉ trong tiêu chuẩn IEEE 802.11) bị khung vô hiệu hoá một cách rõ ràng. Tham số quét và chuyển vùng trong lớp trình điều khiển và lớp chương trình cơ sở có thể được được tối ưu hóa để giảm thêm độ trễ Wi-Fi. Các kiểu tối ưu hoá chính xác triển khai cụ thể.

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

Triển khai

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

Trong HAL AIDL:

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

Trong HIDL HAL (1.3 trở lên):

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

Bạn có thể tìm thấy cách triển khai tệp đối chiếu trong wifi_legacy_hal.cpp bằng các hàm 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ế độ độ trễ thấp, tính năng tiết kiệm pin được tắt một cách rõ ràng bằng cách WifiLockManager trong khung Android. Để hỗ trợ việc 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 pin. Khi Wi-Fi bật lưu bị tắt, hệ thống Wi-Fi phải ở trạng thái bật và sẵn sàng gửi hoặc nhận gói với độ trễ tối thiểu.

Tắt tính năng này

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

Xác nhận kết quả

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

Kiểm thử tự động

Chạy các thử nghiệm VTS và CTS sau đây:

Kiểm thử theo cách thủ công

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

Để kiểm thử thủ công, bạn cần phải thiết lập như sau:

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

    • 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 thử nghiệm 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 kết nối với điện thoại qua ADB. Từ ADB shell, ping cổng liên tục trong 3 giờ mỗi 1 giây ngắt quãng.

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

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

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

  1. Bật chế độ độ 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, hãy ping IP của điện thoại liên tục trong 3 giờ, cách nhau 1 giây.

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

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

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

Các cảnh báo thử nghiệm khác

Lặp lại các bước kiểm thử trên trong nhiều môi trường. Ví dụ: tại ở nhà hoặc tại văn phòng.