Friday, May 7, 2010

Comparison of Android vs iPhone vs Nokia vs BlackBerry vs Windows Mobile 7

Android (Open Handset Alliance)
* open platform
* can compile custom firmwares - good for hackers and other
* good framework, extended on each new firmware
* supports multitasking
* nice GUI - Eclipse
* development SDK is free
* easy to debug, can send logs to developers
* Android uses a version of Linux as its kernel (albeit tweaked by Google to fit Android needs and separated from the main Linux kernel tree), but it is not a conventional Linux distribution; it does not have a native X Window System, neither does it support the full set of standard GNU libraries like its system libraries (GNU C Library). This makes it difficult to reuse existing Linux applications or libraries on Android. Android does not use established Java standards, i.e. Java SE and ME. This prevents compatibility among Java applications written for those platforms and those for the Android platform. Android only reuses the Java language syntax, but does not provide the full-class libraries and APIs bundled with Java SE or ME. However, Myriad's J2Android, launched on 19 March 2010, allows seamless conversion of Java MIDlets into Android applications.
* programming language is Java but bridges from other languages exist (C# .net - Mono, etc)
* Android supports Java 1.5 and translates the byte code to its own custom Dalvik byte code optimized for mobile devices.
* for the hardcore programmers, Android offers the possibility of programming in C using the native dev kit NDK
* can run script languages like LUA, Perl, Python, etc
* can install third party applications from sdcard, random sites - not locked to a specific market
* applications can hook and override everything - email interface, SMS sending, custom keyboards, etc
* supports widgets
* can publish applications on the Android market instantly - initial one time registration fee is 25E
* user has access to the sdcard and can use it as a USB disk
* native Adobe Flash support after 2.1

Symbian (Nokia)
* opened Symbian and says the future will be QT and WRT - they will cut support to any other environment including J2ME
* Qt is a cross-platform application and UI framework. Using Qt, you can write web-enabled applications once and deploy them across desktop, mobile and embedded operating systems without rewriting the source code. (C++)
* One Developer License Qt Desktop Single Operating System $3 695
* QT runs on Maemo, MeeGo, BlackBerry, Symbian, Windows Mobile, desktop PC, consumer electronics, car entertainment, etc
* QT is available stand along IDE, or Integration/Add-in for Eclipse and Visual Studio
* WRT - web runtime - a cool feature that allows users to write applications in HTML, JS and CS. You build the app like a normal web page, and you interact with the phone platform/hardware using the WRT bridge. Just HTML, JS and CS. Very important: JS can call native code, but also the other way around. It seems you can call WRT JS with native code.
* supports Adobe Flash Lite
* nice GUI - Eclipse
* development SDK is free

MeeGo (Nokia and Intel)
* MeeGo applications are written in C++ using the MeeGo SDK, including Qt.
* nice GUI - Eclipse
* development SDK is free


iPhone (Apple)
* closed platform
* development kit costs
* programming language only allow Objective C (appeared in 1986)
* applications are not allowed to duplicate the iPhone functionality - ie no custom email interface, etc
* NO sd card
* third party applications can only be installed from the Apple store. publishing on the store is a very lengthy and tiresome process. Apple has many and bizarre rules. Many applications were rejected for strange reasons.
* no Adobe Flash support

WebOS (HP)
* hope HP will not kill the brilliant WebOS
* web program (Html, CSS, JavaScript)

BlackBerry (Research In Motion)
* Java native (J2ME) and web development
* the new OS 6 is coming


Windows Mobile 7 (Microsoft)
* break compatibility with WM 6.x
* programming environment is Silverlight and XNA
* no native programming ie no hooking and overriding keyboard, etc - they removed PInvoke
* nice GUI - Visual Studio 2010
* MS marketplace
* no Adobe Flash support


Windows Mobile 6.x (Microsoft)
* native C, C# with PInvoke

Bada (Samsung)
* The Bada operating system has a kernel configurable architecture, which allows the use of either the Linux kernel, or another Real-time operating system (RTOS) kernel. The Linux kernel is the preferred choice for smartphones, while RTOS is used for cheaper feature-phones, due to its smaller memory footprint.



Ref: http://adrianvintu.com/blogengine/post/Comparison-of-Android-vs-IPhone-vs-Nokia-vs-BlackBerry-vs-Windows-Mobile-7.aspx
http://en.wikipedia.org/wiki/Android_(operating_system)

No comments: