Introduction to Android and MonoDroid | Mana Blog... for all
Feb 16, 2011

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:

  • Plug-in to Visual Studio 2010: This plug-in allows developers to deploy apps to the Android Emulator running locally, as well as to a physical device connected over a USB cable and Wi-Fi. The plug-in allows MonoDroid to actively work with the rest of the Visual Studio ecosystem and integrate with the tools that developers are already using.
  • A set of project templates for Visual Studio 2010: These templates provide the basic structure for creating several types of MonoDroid projects.
  • The Mono runtime.
  • A set of libraries to allow .NET/Mono to integrate with Android and Java APIs.


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.

0 comments: