Why is tinyALSA preferred over libasound?

alsa, android, audio

Solution

I can't speak on the behalf of the Android developers, but if I had to guess it's because `ALSA` has a very old API that hasn't changed due to backwards compatibility reasons.

If you're choosing an audio system where backwards compatibility isn't a concern, the best thing to do is start with a clean slate and a more modern API.

This is consistent with their approach for `X.Org Server` - completely throw out the system and replace it with something better although one could argue that this was done because X.Org wasn't built with touch screens in mind.

Lastly as you mentioned, Google recommends `tinyALSA` over `ALSA` because of the license.

Problem

In latest Android releases, the `AOSP` release typically comes with `tinyALSA` and `tinyCompress`. In this question, Simon has mentioned that all Nexus devices shall support `tinyALSA`. My question is why is android not integrating `libasound` which has all features required for an audio sub-system as compared to `tinyALSA`? Is it mainly due to the licensing issues as indicated in source.android.com site?

Original source