O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

Modo Wi-Fi de baixa latência

O Android 10 estende a API de bloqueio de Wi-Fi para permitir que aplicativos sensíveis à latência configurem o Wi-Fi para um modo de baixa latência . O modo de baixa latência começa quando todas as seguintes condições são atendidas:

  • O Wi-Fi está habilitado e o dispositivo tem acesso à Internet.
  • O aplicativo criou e adquiriu um bloqueio de Wi-Fi e está sendo executado em primeiro plano.
  • A tela está ligada.

Para oferecer suporte ao modo de baixa latência nos dispositivos, os fabricantes dos dispositivos devem atualizar o driver WLAN e o HAL do fornecedor. No modo de baixa latência, a economia de energia (também conhecido como estado de sono no padrão IEEE 802.11) é explicitamente desabilitada pela estrutura. Os parâmetros de varredura e roaming nas camadas de driver e firmware podem ser otimizados para reduzir ainda mais a latência de Wi-Fi. As otimizações exatas são específicas da implementação.

O Android tem um modo de bloqueio de Wi-Fi de alto desempenho (introduzido na API de nível 12) que é separado do modo de baixa latência.

Implementação

O recurso do modo de baixa latência do Wi-Fi está em android.hardware.wifi@1.3 . Para oferecer suporte a esse recurso, forneça implementações para as seguintes funções em IWifiChip.hal :

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

Uma implementação de referência pode ser encontrada em wifi_legacy_hal.cpp com as seguintes funções:

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

No modo de baixa latência, a economia de energia é explicitamente desativada por WifiLockManager na estrutura do Android. Para suportar isso, o driver WLAN deve suportar o comando NL80211_CMD_SET_POWER_SAVE , NL80211_CMD_SET_POWER_SAVE , para habilitar e desabilitar a economia de energia. Quando a economia de energia do Wi-Fi está desativada, o sistema Wi-Fi deve permanecer no estado ativo e estar pronto para enviar ou receber pacotes com atraso mínimo.

Desativando o recurso

Para desligar o recurso de modo de baixa latência, atualize o código subjacente de getCapabilities_1_3() modo que capabilities & SET_LATENCY_MODE = 0 , onde SET_LATENCY_MODE é definido em IWifiChip.hal . Quando este recurso está desativado, a estrutura desativa a economia de energia apenas quando o modo de baixa latência está ativo.

Validação

Para testar se o modo de baixa latência funciona quando habilitado, execute os seguintes testes automatizados e testes manuais de latência de ping.

Teste automatizado

Execute os seguintes testes VTS e CTS:

Teste manual

Equipamento e ambiente de teste necessários

Para o teste manual, a seguinte configuração é necessária:

  • Ponto de acesso Wi-Fi (AP)
  • Telefone do dispositivo em teste (DUT) e computador de teste

    • O DUT deve ser conectado ao ponto de acesso por Wi-Fi.
    • O computador de teste deve estar conectado ao ponto de acesso por Wi-Fi ou Ethernet.
    • O computador de teste deve ser conectado ao DUT via USB.
  1. Ative o modo de baixa latência.

    adb root
    adb shell cmd wifi force-low-latency-mode enabled
    
  2. Certifique-se de que o computador esteja conectado ao telefone por meio do ADB. No shell do ADB, execute ping no gateway continuamente por 3 horas em intervalos de 1 segundo.

  3. Salve a saída do teste em um arquivo de texto e use uma planilha ou um script Python para gerar um histograma dos resultados do teste de latência de ping.

  4. Repita as etapas 1 a 3 com o modo de latência desativado.

    adb root
    adb shell cmd wifi force-low-latency-mode disabled
    
  5. Compare os resultados do teste para garantir que o valor médio da latência do ping seja reduzido quando o modo de baixa latência é habilitado.

  1. Ative o modo de baixa latência.

    adb root
    adb shell cmd wifi force-low-latency-mode enabled
    
  2. Na linha de comando do computador de teste, execute ping do endereço IP do telefone continuamente por 3 horas em intervalos de 1 segundo.

  3. Salve a saída do teste em um arquivo de texto e use uma planilha ou um script Python para gerar um histograma dos resultados do teste de latência de ping.

  4. Repita as etapas 1 a 3 com o modo de latência desativado.

    adb root
    adb shell cmd wifi force-low-latency-mode disabled
    
  5. Compare os resultados do teste para garantir que o valor médio da latência do ping seja reduzido quando o modo de baixa latência é habilitado.

Outros testes

Repita os testes acima em diferentes ambientes. Por exemplo, em casa ou no escritório.