That's because every technical decision in Android has been done by lawyers. Or at least it seems like that to an Android driver developer.
If I had a buck every time Android does something stupid (their libc, bionic, is the primary culprit) that works just fine in GNU land, I wouldn't be developing drivers for Android.
Actually, that's because the designers of Android took the gamble of replacing the Linux userland with a touch-oriented layer built on a managed language runtime.
They did this instead of trying to evolve it toward a vague goal in that general direction, or trying to drag along legacy apps.
In hindsight, it's obviously the right thing to have done. But it was a gamble at the time.
> Actually, that's because the designers of Android took the gamble of replacing the Linux userland with a touch-oriented layer built on a managed language runtime
No, I wasn't talking about the UI and the Dalvik virtual machine. I was talking about what's underneath.
That darn libc, for example. Every operating system needs some kind of user space standard library that deals with system calls and such. Android could have used glibc or uclibc like all the other Linux-based platforms do. But no, they wrote their own. To avoid GPL licence.
Which libc you use does not make a difference to your customers, so you won't be adding any value by rolling your own. Instead, you get decades worth of maintenance to take care of. And now Android has this crappy libc that they don't do a very good job in maintaining and lots of little things are broken. If I had to guesstimate, they have used at least a million dollars (and counting) worth of developer time on that libc with absolutely zero value created.
Android is full of these silly examples of things gone wrong. As a customer, you won't see them. As an application developer you might get a glimpse but if you stay within the Dalvik sandbox, you're relatively safe. If you go NDK, try to port an existing software to Android or work with the internals, may lord have mercy on your soul.
It's saturday. I don't want to talk about Android any longer.