Pages

Thursday, June 30, 2011

Difference Between Android and Symbian

Android:

Android is an open source mobile OS platform that's running on top of Linux kernel. It uses a non-standard Java Virtual Machine called Dalvik, specialized to handle mobile device processes. The main programming language used for Android is Java, with many library from J2SE and third party open source projects, such as Apache commons, sqlite, webkit, etc.

Android is tightly integrated with Google's cloud services, such as Gmail, Calendar, Contacts, Gtalk, etc. This positions Google at a very good edge to monetize mobile ad revenues.

Android's open source nature enables manufacturers to design and customize the platform to their own likings. So fragmentation is a concern here. However, the core Android OS provides more than enough features for current mobile devices' needs. As it evolves, it might include more standardized features, and the OS platform can only become better and better.

There are announced handsets using Android coming out this year from LG, Samsung, Motorola, Lenovo, just to name a few. With carriers like Sprint and AT&T getting Android-powered devices under their offerings, along with T-mobile, the landscape for Android development cannot be underestimated.

On top of that, Android is also being developed for Netbook, ebook readers, and a slew of other electronic appliances. So it's more than a mobile device OS. This is something Sun attempted with their Jini technology 10 years ago but failed miserably. Android is realizing it now.

Symbian:

Symbian was a proprietary operating system for mobile devices until recently, under Android's huge challenge and losing market ground, Nokia bought all the Symbian outstanding shares, and created Symbian foundation and declared it open source.

The main platforms for Symbian includes S60 and UIQ. UIQ was closed down and all people got laid off shortly after the creation of Symbian foundation. As to how appealing open source Symbian to developers are yet to be seen. S60 series are no doubt the leader in number of installed base today. However, Symbian's market share, especially in the smartphone area, are getting smaller and smaller largely due to iPhone.

The main language used for Symbian programming is J2ME and C++. C++ API provides more lower level device access than J2ME. However, their C++ implementation is unnecessarily complex and error-prone. Their paradigm is not suitable for the needs of modern mobile computing. It will require them a great efforts to deliver something comparable to Android and iPhone.




Hong Wu

Sr. Software Engineer at Peel Technologies Inc
http://www.linkedin.com/in/lordhong