It's really simple, we only expose native ABIs we think we can support entirely for the next 10 years,
and the media stuff is not ready yet for this. Now let me explain the details:
The media framework within Android is changing all the time, so is the graphics subsystem, the browser
and a lot of other things, and we can't freeze their APIs and ABIs for application developers without adding
lots of bloat in the system; because supporting old versions of system libraries generally requires more space
taken from the system partition, and often some creative hacking that takes lots of developer times and
introduces "interesting" issues later in the process.
There is an interesting spectrum between the things a company like Microsoft would do to ensure backwards
compatibility (and we now it's damn horrible, given that it involves perpetuating bad design decisions for
several decades), and those done by Linux distributions (where everything gets recompiled in the new distro
hotness, which is only possible if you have the source of all packages). Android tries to be in the middle and
must ensure a stable foundation for applications, most of them proprietary, available to users.
Native code stability is by definition extremely brittle compared to VM languages like Java and we're serious
about supporting existing applications as much as we can. I'm constantly in touch with other engineers responsible
with other parts of the system. There is a general willingness to open as much stuff as possible to native code,
as long as we have a very clear path regarding API and ABI stability.
I can't give you specifics or ETAs, but I know that we want to expose native ABIs for sound and media in
the future though. And we definitely prefer to use standard APIs instead of inventing our own whenever
possible.
Hope this helps