Yes, that means I’ve caught up with the bleeding edge again. Android 2.2, in the form of CyanogenMod’s 6.0.0 pre-alpha2, is finally in my phone. Oh, I’ve been trying various builds previously for like just 10 minutes or so before I revert. But now it’s working quite well, so it’s staying.
Android 2.2, codenamed Froyo (short for Frozen Yogurt), is Google’s latest version of its mobile operating system for phones (and perhaps tablets and other such devices in future). The SDK was released in May 2010, and shortly after ROMs became available over-the-air to some devices. There are a bunch of new features, not the least including OS speed, memory, and performance optimizations we would have come to expect. But the performance improvements for applications are going to be significant because of a new JIT implementation and JavaScript engine in the browser.
I consider myself a late adopter of Android. I was resistant initially because I’ve many complaints about its “openness”, and also the lack of decent hardware then. But it’s funny how I now find myself building ROMs, tweaking kernels, while many of the earlier adopters I know are happy to just use the phone as a phone. Even the people more experienced than me dabbing with non-PC hardware are highly averse to hacking their Nexus One… (or maybe they don’t trust my baking skills…)
Building Android hasn’t been very plain sailing. Of course, once you’ve figured out all the problems, it’s pretty straight-forward albeit time consuming. But before that, there are many stumbling blocks due to the lack of clear and correct documentation. There are bits and pieces of information here and there, but sometimes they are out-dated and have become incorrect.
Take for example the requirement for JDK 1.5, where official instructions have (as of right now still the case) clearly saying JDK 1.6 won’t work. But it turns out you really need JDK 1.6, and that JDK 1.5 won’t work. Yeah, that was a hurdle I crossed some time ago.
Then, moving from CM5 (Android 2.1) to CM6 (Android 2.2) has presented new “problems”, which again, once I’ve figured them out, it’s really quite simple. I plan to write a how-to some time just to help like-minded people who want to build from source, but I don’t know when. (Actually I’ve been planning to do that a long time ago… it’s still not happening.)
Tinkering with a phone OS seems like fun for now. It’s like how I was tinkering with Linux back in the 1990s. (Since the era of Yggdrasil, I might add… I bet most people never heard of it before.) I imagine, though, eventually I will want a phone that just works. It’s like how I went from Linux to Mac OS X. I still use Linux of course, but on a desktop or notebook that I sit in front of and use daily. Android has matured much faster than Linux distros though, so perhaps it will work as an OS that just works. For now, there are little things broken here and there that I have to work around.
Things like, for example, the lack of Bluetooth DUN. Yeah, it seems the Android people prefer WiFi AP or USB tethering. But I want Bluetooth DUN. USB is silly, you have to plug in a cable. WiFi is half as bad, because you still have to reach for the phone to turn on WiFi tethering. Bluetooth DUN is so elegant. Leave the phone where it is. Just activate tethering from the notebook. Okay, perhaps one day when leaving WiFi AP on permanently like we might do with Bluetooth doesn’t use any more battery than Bluetooth does… it might be as useful as Bluetooth DUN. There are other things too, like for example, the inability to send a contact’s business card via SMS. At least not without add-on apps. I consider this a core functionality.
Luckily Android isn’t as horrid as how the iPhone started out. No cut-and-paste. My goodness. In 2007, no cut-and-paste.