La latencia es una métrica importante del rendimiento del sistema. Si bien existen muchos tipos de métricas de latencia de audio, una métrica útil y bien entendida es la latencia de ida y vuelta, que se define como el tiempo que tarda una señal de audio en ingresar a la entrada de un dispositivo móvil, que la procesa una app que se ejecuta en el procesador de aplicaciones y que sale de la salida.

Figura 1: Latencia de audio de ida y vuelta en el dispositivo: Tsalida - Tentrada
En esta página, se proporcionan mediciones de latencia de audio de ida y vuelta para algunos dispositivos Nexus/Pixel y versiones de la plataforma de Android.
Por qué medimos la latencia
Google mide y registra la latencia para que los desarrolladores de aplicaciones para Android tengan los datos que necesitan para tomar decisiones fundamentadas sobre la latencia disponible en los dispositivos reales. Cuando compartimos los números de latencia de algunos dispositivos Nexus y Pixel, esperamos que toda la comunidad de Android mida, publique y reduzca la latencia en todos los dispositivos Android. Únete a nuestro compromiso de reducir la latencia de audio.
Impacto de la app en la latencia
El procesamiento de señales puede agregar los siguientes tipos de demora a la latencia:
- Algorítmico: Esta demora es inherente y no varía con la CPU. Un ejemplo es la demora que agrega un filtro de respuesta de impulso finito (FIR).
- Computacional. Esta demora se relaciona con la cantidad de ciclos de CPU necesarios. Por ejemplo, la atenuación de una señal suele realizarse mediante una operación de multiplicación que toma una cantidad variable de ciclos según la CPU.
Cómo medimos
Realizamos las mediciones que se indican en esta página con la llave de retorno de audio Dr. Rick O'Rang y una prueba de retroalimentación de audio (efecto Larsen). Las mediciones suponen que el procesamiento de la señal de la aplicación no agrega demoras algorítmicas y que la demora computacional es casi nula.
Medimos la latencia de ida y vuelta a través del conector de auriculares por varios motivos:

Figura 2: Latencia de ida y vuelta a través del conector de auriculares: Tsalida - Tentrada
- Las aplicaciones de música importantes (como el procesamiento de guitarra y voz) usan el conector de auriculares.
- Medir la latencia de ida y vuelta del micrófono y la bocina integrados en el dispositivo puede ser engorroso, ya que es difícil evitar que un bucle de retroalimentación en el aire libre entre en una oscilación no controlada.
- Los transductores integrados en el dispositivo son pequeños y sacrifican la respuesta de frecuencia para lograr su tamaño reducido. Para compensar, se aplica el procesamiento de señales digitales, pero se incrementa la demora algorítmica de la ruta de acceso integrada en el dispositivo.
Hay casos en los que las latencias del micrófono y la bocina integrados en el dispositivo sí importan, pero suelen ser para una dirección, no para un recorrido de ida y vuelta. Las técnicas para medir la latencia unidireccional se describen en Cómo medir la latencia de salida y Cómo medir la latencia de entrada.
Ejemplos de mediciones
Las mediciones que se indican a continuación son específicas de una compilación. Los dispositivos se enumeran en el orden aproximado de la versión inicial y por versión de la plataforma. También puedes ver las latencias en un gráfico. La aplicación de prueba usa la API de audio nativa de Android basada en OpenSL ES.
Modelo | Versión de la plataforma |
Número de compilación |
Tasa de muestreo (Hz) |
Tamaño del búfer (marcos) |
Tamaño del búfer (ms) |
Latencia de ida y vuelta (ms) ± un búfer |
---|---|---|---|---|---|---|
Nexus One | 2.3.6 | GRK39FS | 44100 | 768 | 17.4 | 345 |
Nexus S | 2.3.6 | GRK39FS | 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: Latencias de ida y vuelta