Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Modo de baja latencia de Wi-Fi

Android 10 amplía la API de bloqueo de Wi-Fi para permitir que las aplicaciones sensibles a la latencia configuren Wi-Fi en un modo de baja latencia . El modo de baja latencia comienza cuando se cumplen todas las condiciones siguientes:

  • Wi-Fi está habilitado y el dispositivo tiene acceso a Internet.
  • La aplicación ha creado y adquirido un bloqueo de Wi-Fi y se está ejecutando en primer plano.
  • La pantalla está encendida.

Para admitir el modo de baja latencia en los dispositivos, los fabricantes de dispositivos deben actualizar el controlador WLAN y el proveedor HAL. En el modo de baja latencia, el marco de trabajo deshabilita explícitamente el ahorro de energía (también conocido como estado dormido en el estándar IEEE 802.11). Los parámetros de escaneo y roaming en las capas del controlador y el firmware se pueden optimizar para reducir aún más la latencia de Wi-Fi. Las optimizaciones exactas son específicas de la implementación.

Android tiene un modo de bloqueo de Wi-Fi de alto rendimiento (introducido en el nivel de API 12) que es independiente del modo de baja latencia.

Implementación

La función del modo de baja latencia de Wi-Fi está en android.hardware.wifi@1.3 . Para admitir esta función, proporcione implementaciones para las siguientes funciones en IWifiChip.hal :

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

Se puede encontrar una implementación de referencia en wifi_legacy_hal.cpp con las siguientes funciones:

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

En el modo de baja latencia, WifiLockManager deshabilita explícitamente el WifiLockManager de WifiLockManager en el marco de Android. Para admitir esto, el controlador WLAN debe admitir el comando NL80211_CMD_SET_POWER_SAVE , NL80211_CMD_SET_POWER_SAVE , para habilitar y deshabilitar el ahorro de energía. Cuando el ahorro de energía de Wi-Fi está desactivado, el sistema de Wi-Fi debe permanecer despierto y estar listo para enviar o recibir paquetes con un retraso mínimo.

Deshabilitar la función

Para desactivar la función del modo de baja latencia, actualice el código subyacente de getCapabilities_1_3() modo que las capabilities & SET_LATENCY_MODE = 0 , donde SET_LATENCY_MODE se define en IWifiChip.hal . Cuando esta función está deshabilitada, el marco solo deshabilita el ahorro de energía cuando el modo de baja latencia está activo.

Validación

Para probar que el modo de baja latencia funciona cuando está habilitado, ejecute las siguientes pruebas automatizadas y pruebas de latencia de ping manuales.

Pruebas automatizadas

Ejecute las siguientes pruebas de VTS y CTS:

Prueba manual

Equipo de prueba y entorno necesarios

Para las pruebas manuales, se requiere la siguiente configuración:

  • Punto de acceso Wi-Fi (AP)
  • Teléfono de dispositivo bajo prueba (DUT) y computadora de prueba

    • El DUT debe estar conectado al punto de acceso a través de Wi-Fi.
    • La computadora de prueba debe estar conectada al punto de acceso a través de Wi-Fi o Ethernet.
    • La computadora de prueba debe estar conectada al dispositivo bajo prueba a través de USB.
  1. Habilite el modo de baja latencia.

    adb root
    adb shell cmd wifi force-low-latency-mode enabled
    
  2. Asegúrese de que su computadora esté conectada con el teléfono a través de ADB. Desde el shell de ADB, haga ping a la puerta de enlace de forma continua durante 3 horas a intervalos de 1 segundo.

  3. Guarde la salida de la prueba en un archivo de texto y use una hoja de cálculo o una secuencia de comandos de Python para generar un histograma de los resultados de la prueba de latencia de ping.

  4. Repita los pasos 1 a 3 con el modo de latencia desactivado.

    adb root
    adb shell cmd wifi force-low-latency-mode disabled
    
  5. Compare los resultados de la prueba para asegurarse de que el valor de latencia de ping promedio se reduce cuando el modo de baja latencia está habilitado.

  1. Habilite el modo de baja latencia.

    adb root
    adb shell cmd wifi force-low-latency-mode enabled
    
  2. Desde la línea de comando de la computadora de prueba, haga ping a la dirección IP del teléfono continuamente durante 3 horas a intervalos de 1 segundo.

  3. Guarde la salida de la prueba en un archivo de texto y use una hoja de cálculo o una secuencia de comandos de Python para generar un histograma de los resultados de la prueba de latencia de ping.

  4. Repita los pasos 1 a 3 con el modo de latencia desactivado.

    adb root
    adb shell cmd wifi force-low-latency-mode disabled
    
  5. Compare los resultados de la prueba para asegurarse de que el valor de latencia de ping promedio se reduce cuando el modo de baja latencia está habilitado.

Otras pruebas

Repita las pruebas anteriores en diferentes entornos. Por ejemplo, en casa o en la oficina.