Introduction to Android and MonoDroid
Android is based on
the Linux kernel. Google Inc. and the Open Handset Alliance have created
an Android SDK. The SDK includes a set of tools built around a custom
Java virtual machine (VM), named Dalvik, and the Eclipse IDE.
.NET developers are a large part of the development marketplace. .NET developers typically use Visual Studio to develop applications. Many of these .NET developers are looking at the Android marketplace with envy. While .NET/C# and Java are similar, they're not the same. They contain different pieces of functionality located in different places. The same is true with Eclipse and Visual Studio. They're conceptually similar, but they use different keystrokes to perform similar operations. .NET developers are asking themselves lots of questions: "How can we get some of this Android goodness with the least amount of pain? Will we be required to learn a new framework? How can we best leverage our knowledge of .NET/C#/Visual Studio? What about the ecosystem built around Visual Studio; will we be required to find plug-ins for Eclipse that mimic the plug-ins we use in Visual Studio?"
Novell, now Attachmate Corp., has stepped into this void. Novell has long supported the Mono Project. Mono is an open source implementation of the .NET Framework. It's not a complete port of .NET, but it provides the vast majority of APIs that developers use from the .NET Framework. Novell introduced MonoTouch in 2009 to allow .NET developers to develop native applications on the iPhone. Novell is doing the same thing with Android. The company is currently in the final stages of creating a product called MonoDroid. MonoDroid is a plug-in to Visual Studio 2010 that allows .NET developers to target Android. One of the key things that developers will need to be aware of is that MonoDroid is not a cross-platform tool. Apps that are built with MonoDroid will run on Android. They won't magically run on Windows, the iPhone or any other OS at this point in time.
MonoDroid contains the following items:
MonoTouch creates a native application that contains the Mono runtime
embedded within the application. MonoDroid can create two types of
applications. The first is a single standalone application, which is
similar to a MonoTouch application, with the app and the Mono runtime
bound together. Everything that the application needs is embedded within
the application. The second type is an application that makes use of a
shared runtime that's installed on the device. This is similar to how
.NET apps run on Windows. With this type of application, the app, along
with other applications written with MonoDroid, can make use of a shared
runtime.