A latência é uma métrica importante de desempenho do sistema. Embora existam muitos tipos de métricas de latência de áudio, uma métrica útil e bem compreendida é a latência de ida e volta, definida como o tempo que um sinal de áudio leva para entrar na entrada de um dispositivo móvel, ser processado por um app em execução no processador do aplicativo e sair da saída.

Figura 1. Latência de áudio de ida e volta no dispositivo: Tsaída - Tentrada
Esta página fornece medições de latência de ida e volta do áudio para alguns dispositivos Nexus/Pixel e versões da plataforma Android.
Por que medimos a latência
O Google mede e informa a latência para que os desenvolvedores de aplicativos Android tenham os dados necessários para tomar decisões fundamentadas sobre a latência disponível em dispositivos reais. Ao compartilhar números de latência para alguns dispositivos Nexus e Pixel, esperamos incentivar toda a comunidade do Android a medir, publicar e reduzir a latência em todos os dispositivos Android. Participe do nosso compromisso de reduzir a latência de áudio.
Impacto do app na latência
O processamento de sinal pode adicionar os seguintes tipos de atraso à latência:
- Algorítmica. Esse atraso é inerente e não varia com a CPU. Um exemplo é o atraso adicionado por um filtro de resposta de impulso finito (FIR, na sigla em inglês).
- Computacional. Esse atraso está relacionado ao número de ciclos de CPU necessários. Por exemplo, a atenuação de um sinal geralmente é feita por uma operação de multiplicação que leva um número variável de ciclos, dependendo da CPU.
Como medimos
Fizemos as medições listadas nesta página usando o dongle de loopback de áudio Dr. Rick O'Rang e um teste de feedback de áudio (efeito Larsen). As medições presumem que o processamento do sinal do aplicativo adiciona zero de atraso algorítmico e quase zero de atraso computacional.
Medimos a latência de ida e volta pelo conector do fone de ouvido por vários motivos:

Figura 2. Latência de ida e volta pelo conector de fone de ouvido: Tsaída - Tentrada
- Aplicativos de música importantes, como processamento de guitarra e voz, usam o conector de fone de ouvido.
- Medir a latência de ida e volta do microfone e alto-falante no dispositivo pode ser inconveniente, já que é difícil impedir que um loop de feedback no ar aberto entre em oscilações descontroladas.
- Os transdutores no dispositivo são pequenos e sacrificam a resposta de frequência para alcançar o tamanho pequeno. Para compensar, o processamento de sinal digital é aplicado, mas aumenta o atraso algorítmico do caminho no dispositivo.
Há casos em que as latências do microfone e do alto-falante no dispositivo importam, mas geralmente elas são para uma direção, não para ida e volta. As técnicas para medir a latência unidirecional são descritas em Como medir a latência de saída e Como medir a latência de entrada.
Exemplos de medições
As medições listadas abaixo são específicas para um número de build. Os dispositivos são listados na ordem aproximada da versão inicial e pela versão da plataforma. Também é possível visualizar as latências em um gráfico. O aplicativo de teste usa a API de áudio nativa do Android baseada no OpenSL ES.
Modelo | Versão da plataforma |
Número da versão |
Taxa de amostragem (Hz) |
Tamanho do buffer (frames) |
Tamanho do buffer (ms) |
Latência de ida e volta (ms) ± um buffer |
---|---|---|---|---|---|---|
Nexus One | 2.3.6 | GRK39F | 44100 | 768 | 17,4 | 345 |
Nexus S | 2.3.6 | GRK39F | 44100 | 1024 | 23.2 | 260 |
Nexus S | 4.0.4 | IMM76D | 44100 | 1024 | 23.2 | 260 |
Nexus S | 4.1.2 | JZO54K | 44100 | 880 | 20 | 210 |
Galaxy Nexus | 4.0.1 | ITL41D | 44100 | 976 | 22.1 | 270 |
Galaxy Nexus | 4.3 | JWR66Y | 44100 | 144 | 3.3 | 130 |
Nexus 4 | 4.2.2 | JDQ39E | 48000 | 240 | 5 | 195 |
Nexus 4 | 5.1 | LMY47O | 48000 | 240 | 5 | 58 |
Nexus 10 | 5.0.2 | LRX22G | 44100 | 256 | 5,8 | 36 |
Nexus 10 | 5.1 | LMY47D | 44100 | 256 | 5,8 | 35 |
Nexus 7 2013 |
4.3 | JSR78D | 48000 | 240 | 5 | 149 |
Nexus 7 2013 |
4.4 | KRT16S | 48000 | 240 | 5 | 85 |
Nexus 7 2013 |
5.0.2 | LRX22G | 48000 | 240 | 5 | 64 |
Nexus 7 2013 |
5.1 | LMY47O | 48000 | 240 | 5 | 55 |
Nexus 7 2013 |
6.0 | MRA58K | 48000 | 240 | 5 | 55 |
Nexus 5 | 4.4.4 | KTU84P | 48000 | 240 | 5 | 95 |
Nexus 5 | 5.0.0 | LRX21O | 48000 | 240 | 5 | 47 |
Nexus 5 | 5.1 | LMY47I | 48000 | 240 | 5 | 42 |
Nexus 5 | 6.0 | MRA58K | 48000 | 192 | 4 | 38 |
Nexus 9 | 5.0.0 | LRX21L | 48000 | 256 | 5.3 | 35 |
Nexus 9 | 5.0.1 | LRX22C | 48000 | 256 | 5.3 | 38 |
Nexus 9 | 5.1.1 | LMY47X | 48000 | 256 | 5.3 | 32 |
Nexus 9 | 6.0 | MRA58K | 48000 | 128 | 2.6 | 15 |
Nexus 6 | 5.0.1 | LRX22C | 48000 | 240 | 5 | 65 |
Nexus 6 | 5.1 | LMY47I | 48000 | 240 | 5 | 42 |
Nexus 6 | 6.0 | MRA58K | 48000 | 192 | 4 | 33 |
Nexus 5X | 6.0 | MDA89E | 48000 | 192 | 4 | 18 |
Nexus 5X | 8.0.0 | OPR4.170623.020 | 48000 | 192 | 4 | 18 |
Nexus 5X | 8.1.0 | OPM2.171019.029.C1 | 48000 | 192 | 4 | 18 |
Nexus 6P | 6.0 | MDA89D | 48000 | 192 | 4 | 18 |
Nexus 6P | 8.0.0 | OPR5.170623.014 | 48000 | 192 | 4 | 18 |
Nexus 6P | 8.1.0 | OPM5.171019.019 | 48000 | 192 | 4 | 18 |
Pixel | 7.1.2 | NHG47L | 48000 | 192 | 4 | 18 |
Pixel | 8.0.0 | OPR3.170623.013 | 48000 | 192 | 4 | 18 |
Pixel | 8.1.0 | OPM1.171019.021 | 48000 | 192 | 4 | 18 |
Pixel XL | 7.1.2 | NHG47L | 48000 | 192 | 4 | 18 |
Pixel XL | 8.0.0 | OPR3.170623.013 | 48000 | 192 | 4 | 18 |
Figura 3. Latências de ida e volta