Compiler and Virtual Machine comparison between Android and Windows Mobile

Hello there,

In this article we are going to talk about Android Phenomena, and compare it to other will established Smart phones market such as Windows mobile and Apple IOS.

What is android  from Market Point of view

Is an operating system for mobile devices such as cellular phones, tablet computers and net-books. Android was developed by Google and is based upon the Linux kernel and GNU software. It was initially developed by Android Inc. (a firm later purchased by Google) and lately broadened to the Open Handset Alliance. According to NPD Group, unit sales for Android OS smart phones ranked first among all Smartphone OS handsets sold in the U.S. in the second quarter of 2010, at 33%. BlackBerry OS is second at 28%, and iOS is ranked third with 22%.

Android has a large community of developers writing apps that extend the functionality of the devices. There are currently over 70,000 apps available for Android with some estimates saying 100,000 have been submitted, which makes it the second most popular mobile development target. Developers write managed code in the Java language, controlling the device via Google-developed Java libraries.

The unveiling of the Android distribution on 5 November 2007 was announced with the founding of the Open Handset Alliance, a consortium of 71 hardware, software, and telecom companies devoted to advancing open standards for mobile devices. Google released most of the Android code under the Apache License, a free software and open source license.

The Android operating system software stack consists of Java applications running on a Java based object oriented application framework on top of Java core libraries running on a Dalvik virtual machine featuring JIT compilation. Libraries written in C include the surface manager, OpenCore media frameworkSQLite relational database management systemOpenGL ES 2.0 3D graphics APIWebKit layout engineSGL graphics engine, SSL, and Bionic libc. The Android operating system consists of 12 million lines of code including 3 million lines of XML, 2.8 million lines of C, 2.1 million lines of Java, and 1.75 million lines of C++.

Android From Technical point of view 

1. Android runs on ARM CPUs 

2. Applications are compiled from Java to DalvikVM bytecode or from C to ARM native code

3. Dalvik VM vastly improves performance and stability by using Just In Time Compilation (JIT) technology to covert DalvikVM bytecode to ARM instructions on the fly. The JIT is a software component which takes application code, analyzes it, and actively translates it into a form that runs faster, doing so while the application continues to run.

4. State of art garbage collector. More efficient than Java VM’s

The Dalvik Virtual Machine

One of the key elements of Android is the Dalvik virtual machine. Rather than use a traditional Java virtual machine (VM) such as Java ME (Java Mobile Edition), Android uses its own custom VM designed to ensure that multiple instances run efficiently on a single device.

The Dalvik VM uses the device’s underlying Linux kernel to handle low-level functionality including security, threading, and process and memory management.

All Android hardware and system service access is managed using Dalvik as a middle tier. By using a VM to host application execution, developers have an abstraction layer that ensures they never have to worry about a particular hardware implementation.

The Dalvik VM executes Dalvik executable files, a format optimized to ensure minimal memory foot- print. The .dex executables are created by transforming Java language compiled classes using the tools supplied within the SDK.

.NET Compact Framework

1. Microsoft .NET Common Language Runtime (CLR) also employs JIT technology to optimize performance at the run-time. Some sources complain of very long start-up time for Windows Mobile CLR, up to 5-10 seconds

2. Interoperability between .NET managed code and native code is very limited

3. A major disadvantage of the UI development is that fact that modern looking applications with support for finger-based touch screen interaction are not that easy to implement. This is mainly due to the desktop-oriented user interface concept on which WinForms is based, although some third party libraries with custom controls for this purpose are available.

 Last but not least

 

this  comparison sheet was created by me and i updated it the last time maybe 1 year ago or less, I hope that you will find a good use for it

Android Windows Phone 7* iPhone/iPad
Kernel Linux 2.6.x Windows CE7 OSX
UI Interface SDK includes modern UI elements SDK includes modern UI elements SDK includes modern UI elements
Platform Open Platform Closed Platform Closed Platform
Programming Language Java, C but bridges from other languages exist (C# .net – Mono, etc) C#, VB# Objective C
IDE Eclipse ,NetBeans VisualStudio Xcode
CPU Architecture ARM ARM Apple A4
Virtual Machine Delvik .NET CLR Native
SDK/NDK Availability managed code(Java), and native APIs (C,NDK available), many APIs (deep integration of apps, services into system is possible) managed code only (C#), little APIs available Native/managed code (objective C) , many APIs available, buts severe restrictions
SDK Cost Free development kit costs ~ 100 USD
Application Alternatives and defaults applications can hook and override everything Alternatives is allowed ,changing defaults is not allowed Alternatives not allowed
Installing Applications No limitation Only from Windows Phone Marketplace Only from AppleStore
Publishing Applications Android Store, no fee Windows Phone Marketplace AppleStore, placement fee
Multitasking Yes hardware dependent No Yes, starting from iPhone 4G
File System Access Yes No No
Direct Network Access Yes No Yes
Built-in Database SQLite Microsoft SQL Server 2005 Compact Edition SQLite
3D Acceleration Yes No Yes
Sensors APIs All All All
Multi Touch Yes Yes Yes
Adobe Flash Support Yes No but in future it will be incorporated No
Notifications Handling Non-intrusive, aggregation in notification panel, manageable Non-intrusive, no management Intrusive, no management
Push Email Multiple exchange servers, Gmail Multiple exchange servers Multiple exchange servers
Web Browser Chrome(Webkit) Internet explorer Safari(webkit)
Speech Recognition Yes No No
Media and File Synchronization Via direct access to file system (any file synchronization method can be used) eg.windows media player, wifi , and cloud sync solutions Zune desktop software, wifi Sync iTunes
Codec Supported MP3, ACC, OGG, AMR, MIDI, WAVE, H.263 , H.264, MPEG-4 , others through thrid party players MP3, ACC, WMA, ASF, AMR, WAVE, WMV, MPEG-4,DiVX,H.263,H.264 AAC, H.264, MPEG-4, M-JPEG
GPS Yes Yes Yes
Compass Yes Yes Yes
Accelerometer Yes Yes Yes
Copy and Paste Yes No Yes
Major Hardware Suppliers Lenovo, HP, Dell, Cisco, Acer, NEC, Philips, Sharp, Samsung, Asus, HTC, Nokia, Motorola Dell, Fujitsu, HP, Toshiba, Lenovo, HTC, Asus, Acer, Motorola, Samsung, LG, Siemens Apple

References  

Chapter 1. Blog Posts

Chapter 2. Web Pages

Chapter 3. Articles

pushd /shareShare on Google+1Share on LinkedIn1Tweet about this on Twitter1Share on Reddit0Share on Facebook0Email this to someonePrint this page
Posted in Programming, Technology and tagged , , , , , , . Bookmark the permalink. RSS feed for this post. Both comments and trackbacks are currently closed.

4 Responses to Compiler and Virtual Machine comparison between Android and Windows Mobile

  1. After all I will be subscribing to your rss feed and I hope you write again very soon!

  2. Alan Blanton says:

    I’ve also book marked your web web site which enable it to come back

  3. Hey there Thank you ..that helped me a whole lot..:)

Swedish Greys - a WordPress theme from Nordic Themepark.