Jamie Bennett Speaks

Thoughts from Jamie Bennett

ELC2009 – Android: Mythbusters

Written by JamieBennett onOctober 20th, 2009 at9:33 pm in

Speaker

  Matt Porter

Links

  http://www.celinuxforum.org/CelfPubWiki/ELCEurope2009Presentations
  http://www.mentor.com/
  http://www.androidx86.org/

Introduction

On Thursday 15th October 2009 Matt gave a very entertaining presentation (that subsequently won the presentation of the show award) on the state of Android from the potential integrators perspective. The talk looked at why people are so interested in Android and detailed what happens when you take Google’s phone OS and put it on a device that isn’t a phone.

Main points

  • Android is a hugely popular topic at the moment.
  • Android does not adhere to standard Linux principles.
  • Android has been designed with phone devices in mind and not much else.
  • Hard coding and bad design decisions make it harder to do anything different with it.

Background

Matt pointed out the obvious, Android is a hugely hot top at the moment. Every manufacture is interested in bring Google’s operating system to their particular device. The problem lies with the fact that Android was only really designed for phones, not the plethora of weird and wonderful devices that are now the focus of attenton.

What is Android?

Android has:

  • Linux kernel + Android patches (around 115 patches).
  • Ashmem for common shared memory.
  • Binder.
  • Android specific power management.
  • Bionic which is Googles replacement for libc.
  • Dalvik VM.
  • Many other tailored components.

Bionic

Bionic is Googles replacement for libc derived from BSD and only supports ARM and x86 out of the box. It has partial thread support but no SysV IPC or STL support. The prelinker is also uniquely tailored to Android. There are no linux-headers and only minimal ‘scrubbed’ headers available for new binaries to use.

Other Missing Bits

Another problem Android porters face is that there is udev. Instead Android’s init does a somewhat poor job (all hardcoded) of setting up the device nodes in the /dev directory.

Hotplug support via ‘vold’, not HAL, only extends to MMC devices. Other types of devices need some modifications to work. Similary, input devices are also limited to keyboard, trackball and touchscreen support. Again, other devices need modifications.

Screen size support is also limited by default. Anything above 1024×768 runs out of video memory rather quickly.

Another aspect that manufactures fail to realise is that the UI is designed for a mobile phone. Certain things can look terrible at higher resolutions and many apps are designed with an absolute rather than relative layout. Other problems with the UI are caused by the OS expecting certain peripherals such as telephony support, wifi, and other handset related bits. Similary, peripherals that alot of over devices have such as ethernet are not supported.

More problems for non-handset makers

One of the big draws of Android is the Android Market Place. This is a central hub for Android applications and guess what, its not available for customized Android installations.

The Dalvik VM that Android uses extensively (derrived from Apache’s Harmony project) is very Endian specific so moving that to another platform with a different Endianness proved to be tricky.

Finally to drive the point home, Matt gave an example of the bad coding decisions made by the Android developers. He showed many examples of hardcoding which was just bad practice.

Conclusions

Matt concluded with a few points.

  • Android is not like a traditional Linux.
  • Android departs from accepted user-space components and techniques.
  • Android is tailored for the handset with little thought into any other form factor.
  • Android has many hardcoded elements and bad practices.

4 Responses to 'ELC2009 – Android: Mythbusters'

Subscribe to comments with RSS or TrackBack to 'ELC2009 – Android: Mythbusters'.

  1. Wouldn’t Moblin be a better choice for netbook sized devices?

    Jim

    25 Oct 09 at 10:20 pm

  2. Yes, that and of course Ubuntu’s Netbook offering.

    JamieBennett

    25 Oct 09 at 10:50 pm

  3. [...] show a little ignorance. Open source on the cell phone is a little different from the desktop. Android on anything but a cell phone platform is trying to make a nun get drunk with beer whist smoking crack (recent small bit of ammo). [...]

  4. [...] show a little ignorance. Open source on the cell phone is a little different from the desktop. Android on anything but a cell phone platform is like trying to make a nun get drunk with beer whilst smoking crack (recent small bit of ammo). [...]

Leave a Reply