Update number two from the Android Developer Conference. Right now, we're in Karim Yaghmour's talk entitled “Android Variants, Hacks, Tricks and Resources. This talk focused on some of the key differences between standard Linux and Android. There are an awful lot of changes Google made to the Android's Linux, and Yaghmour's talk highlighted these differences.
At the core of his talk was the difference between the C libraries used in Android. Android uses a C Library known as Bionic, whereas standard Linux uses GLibC. This, said Yaghmour, can be troublesome when you're trying to port an existing Linux application to Android.
“How would I try to get the Android open source project to coexist with a classic Linux stack?” asked Yaghmour. “As part of my demo, I'll get BusyBox essentially strapped onto the root filesystem with Android. [The Android] Toolbox will continue using Bionic,but BusyBox will be using GLibC. My second demo will be getting a client and server using sockets, one will be compiled against GLibC, one against Bionic. That's a nugget for an idea where you can have a complete stack which you developed sitting side-by-side with Andorid and talking to the Android stack.”
Yaghmour's slides with these demonstrations will be up on the AnDevCon site soon.
Yaghmour also discussed the various hacks, forks and modified versions of the Android operating system that are out there now. First on that list was CyanogenMod. “This is after-market handset firmware. It requires a rooted phone. It supports themes, adds a DSP equalizer and other things. If you're doing any platform development, the interesting thing here is that it includes BusyBox. they've added BusyBox, which is a godsend if you come from the embedded Linux world because the stuff they have in Android, which is called Toolbox, sucks at a very high level. There are lots of tiny tweaks and mods: it's worth doing a diff on CyanogenMod and regular Android,” said Yaghmour.
The other two forks of the Android Open Source Platform are known as Replicant.us and MIUI, neither of which, said Yaghmour, are quite ready for prime time. Replicant.us offers FDroid, which is an open source client and server for an app store, which Yaghmour said was interesting and useful. Replicant is also an effort to replace non-open source components of Android with free and open source alternatives. MIUI, which comes from China, includes a completely redone UI, which Yaghmour said was quite slick.
There are a lot of differences between the standard desktop or server Linux and Android Linux, said Yaghmour. One of the big differences is that Android's file system is “non-FHS-compliant. FHS sayst you have to have /bin, /usr, /etc. Android disregards FHS entirely. It doesn't have a /lib or a /bin directory, which is good for us because we can put things in there and they won't conflict with existing files. But some packages you get off the web won't work properly because of this.”
Yarmough went on to demonstrate his methods for running applications based on GLibC, which is detailed in his slides.