Android for x86
I do not know why, but the world is slowly moving towards smartphones. Ever since Apple launched the iPhone in 2007, we have seen a whole gamut of devices combining a cellphone, a touch-input based computing device along with some other bells and whistles based on a similar premise. While Apple, as usual, did not create anything new – touch screen phones were already there prior to the iPhone (Palm anyone?), the iPhone gave it mainstream popularity, smartphones became cool. Apple did the same thing to smartphones as it had previously done with the GUI in Macintosh or the portable media player with the iPod. Android was Google’s answer to the iPhone, with some heavy dose of open-source niceties.
I wont rant about the origins of the Android operating system – since a quick look through this article would give you a fair share of it. The biggest advantage of the Android OS, other than the fact that it is open-source is that it uses the Linux kernel – and given the propensity of Mr. Torvalds’ operating system, we are seeing this OS run on a whole slew of devices, even a (God forbid!) toaster!
Android was originally developed for the mobile platform, using the highly efficient ARM processor architecture to run it. As a result, the OS and its binaries were incompatible for the x86 architecture which Intel, AMD and other PC manufacturers use. Some nice people successfully ported the Android OS on to the x86 architecture, calling the project Android for x86 or Android-x86 in short. Currently these guys maintain a Google Code page where you can download the latest ISO to install on to your system. They provide stable as well as RC (run-time candidate) builds plus daily night-time builds. At the time of writing, they latest version is the Android 4.0 Ice Cream Sandwich RC2. Instead of generic ISOs though, these guys currently provide ISOs tuned for specific hardware like the Asus EEE PC family or the AMD Brazos system.
Installing Android was really very simple, if you have some idea about Linux distros – just download the ISO file, it is under 200MB; burn it on to a disk or write it to a USB thumb drive with UnetBootin and you are good to go! Like most modern Linux distros, the Android ISO file has a live-mode as well as a text-only installer mode.
I downloaded the Asus EEE PC tuned ISO to try it out on my three-month old Asus EEE PC 1015PX with 1GB RAM and an Intel Atom 570 Dual Core processor.
Just after the initial boot process, the Android system will ask you to log in with your Google user-name and password. Rest assured that like all Google services, the Android system is tightly integrated to the Google world – one single user-name/password combination is enough to let you access Android, Google Play Store, Gmail, Picasa etc. On the other hand, the Google sync automatically syncs my netbook Gallery with Picasa. So, if you have any naughty pics on your Android phone or tablet, it is already synced to Google Picasa! Moreover, if you want to buy paid apps from the Google Play Store, you have to provide your credit-card details too!
Most of my hardware on the Asus EEE PC worked right out of the box, including Wi-Fi, Bluetooth and the multi-touch touchpad. The screen resolution was maxed at 1024×600 pixels, which is the greatest for this netbook. Surprisingly, accelerated graphics also worked out of the box.
What was missing, and it is in my humble opinion a HUGE loss of usability is the lack of support for USB Modems. My Huawei EC159 simply refused to work on the system. Other than that, Android could not view my hard drives, especially the NTFS ones. It could detect FAT32 USB drives, but they were mounted at an obscure location at /mnt/USB.
The Android-x86 successfully transformed my Netbook screen to a tablet look-alike sans the touchscreen. On the top left corner is the prominent Google branding – which also acts as a search bar. The bottom left has three buttons; Back, Home Screen and Last Used Apps. The bottom right houses the notification area with Wi-Fi, Bluetooth, Cellular Strength, Current Downloads, Currently playing Tracks etc. The top right corner has the App-Page menu button.
Quite a few apps are installed by default. You have the usual Google apps like Maps, Gmail, Gtalk and Google+. Then there are some multimedia apps such Movie Editor, Play Music and YouTube. The browser is there,which is totally based off Google Chrome. There are developer apps like the Terminal Emulator and Dev Tools and there are some really crappy games too! Oh, I forgot to mention the stupidest app installed, Global Time which just shows the Globe! On the whole it is close to the mobile/tablet experience. The developers have also ported the Google Play Store to let you buy more apps. But currently, there are only a few apps for the x86 architecture. There are a large number of widgets that you can add to the home screen to add some more visual jazz!
As far as look-and-feel of Android-x86, the developers have successfully replicated the Android tablet experience on to the netbook. Though I prefer not to rant about it and be a troll, the system does not feel highly usable. I hate to admit it, but the Android UI lacks multi-tasking, a feature most Windows and Mac OS X users take for granted. (Not to forget GNOME, KDE, XFCE, LXDE users too!) Sure, it can play your MP3s while you browse the web, but the whole premise of “One-App-At-A-Time”is counter-productive on a laptop/desktop environment.
Under the Hood
Everyone knows that Google’s Android is based on the Linux kernel, effectively doing what Apple did quite some years ago with FreeBSD. But the guys at Google just adapted a portion of the kernel. While it ensures a very stable and enriching mobile experience, the same cannot be said for a netbook. Any Windows user opening the file manager for the first time would surely be confused by the hierarchy (Same is true for Linux and Mac OS X!) while any seasoned UNIX/Linux user would feel that the system is incomplete. The Android-x86 ships with a terminal emulator with an ugly blue background, but it lacks even basic functionality of quite a few commands. Let me give you an example: If you type “lspci” or “lsusb” command to view the installed devices on the system, the output is just the bus id, vendor id and product id in hex. Even on the most basic Linux system, the product name is displayed too! Similarly, the C libraries are seriously deprecated too. Google chose Java for application development due to cross compatibility, but then if cross compatibility is present, why isn’t most Java-based games and apps not running on the x86 platform? Google could have developed a separate code base different architectures too! While it would have meant more work for the developer, it would have ensured better app development for operating system. On the whole, system feels like a half-assed implementation of UNIX!
I hate to admit it, but I have to agree with Dedoimedo’s blog post about Android-x86. An OS built for a smartphone does not feel at home on a full-blown desktop-based system. Moreover, looking at the smartphone scenario, the move from feature-phones to smartphones isn’t that smart. A smartphone can never be that hallowed “All-in-One” device, replacing a camera, PSP and iPod all at once! Porting Android to a PC might be good to check cross-platform compatibility, but it robs the essence of a computer. A PC/Laptop/Netbook, whatever you might call it, is first and foremost a productivity device with entertainment add-ons. The Android for x86 makes it an entertainment device with productivity as an add on!