Tushar Mehta / Android Authority
While there’s been a modest revival in dedicated audio players, most listeners — including many discerning audiophiles — are streaming music straight from their smartphones. And why not? Android devices offer a vast selection of music streaming platforms, surprisingly capable speakers, and some of the best Bluetooth connectivity around.
Still, Android’s audio signal chain remains a bit of a black box. What actually happens to your music between the app and your headphone driver is often unclear. To lift the veil, here’s how Android handles your audio — and what you can do to get the best possible sound.
Android and Hi-Res audio
Edgar Cervantes / Android Authority
Whether you’re playing back locally or streaming over your data plan, Android natively supports 16-, 24-, and 32-bit audio at sample rates up to 192 kHz. Since Android 9, all audio is mixed internally in 32-bit floating-point precision to avoid rounding losses. Outside of typical music applications, Android also guarantees decoding of up to 8 channels. Recent Android versions also include built-in support for spatial audio and head-tracking through the Spatializer API, alongside OEM features like Dolby Atmos and Sony 360 Reality Audio.
In other words, the platform has long supported high-quality audio formats, making it suitable for playing back and processing everything from CD-quality FLAC to lossless masters.
If you’re interested in the low-level workings of Android audio, your apps typically use the android.media API — such as AudioTrack or MediaPlayer — to send audio data to the core OS. These APIs communicate with the native AudioFlinger service, which handles mixing, routing, and stream management. For example, this is where your music might be mixed with notification sounds.
AudioFlinger then passes the processed audio to the Audio HAL, which interfaces with the actual hardware, like your phone’s speakers or Bluetooth output. While most audio is routed through AudioFlinger, newer APIs like AAudio for low latency or the USB bit-perfect mode introduced in Android 14 let compatible apps bypass the mixer entirely. More on that later.
Now, Android does have somewhat of a playback oddity that’s not transparent to users. The AudioFlinger can downmix and resample audio on the fly. By default, Android processes everything in 32-bit floating point but converts the output to 16-bit or 24-bit PCM at 48 kHz stereo, maintaining a consistent buffer size and master clock across apps and services. In practice, that means 44.1 kHz and 192 kHz material is usually resampled for playback over the phone’s speakers or the (now rare) 3.5 mm headphone jack.
... continue reading