Brian Long Consultancy & Training Services
Note: This introductory tutorial was written for Mono for Android v4.0, as developed and sold by Xamarin. Various aspects make it inappropriate as a resource for earlier versions of Mono for Android, for which you can use this earlier tutorial.
Android devices have become very prominent over the last couple of years and represent a useful market sector to target for business applications. Traditional Android development is done in Java using the Eclipse IDE, but this is now no longer the only way to build Android apps.
With C# and Mono for Android® from Xamarin®, you have all you need to develop and debug applications for deployment to Android phones and tablets. This tutorial looks at getting started with the process of building Android applications with C# and Mono for Android v4, getting to understand the build process and what goes on in an Android application.
As well as working with Microsoft’s .NET, you can also use C# to build applications for Xamarin’s Mono platform, meaning .NET programming skills can progress your application code base from solely targeting Windows (other than when working with Silverlight® or targeting Windows Phone 7) to working against Linux on various hardware platforms and also Mac OS X. Mono includes and enables various toolkits and libraries to support the UIs and technologies available on these platforms.
Mono for Android now extends this range of platforms to include Google's Android and includes API bindings and the required tooling to build and deploy Android applications. Mono for Android cuts out the need to learn the Java programming language and the Eclipse IDE, meaning you can retain your .NET programming skills and work in the familiar environment of Visual Studio.
Mono for Android was originally launched in April 2011. It offers several things to facilitate generating Android applications via the Mono platform:
Note: Whilst most .NET developers will be most comfortable working with Mono for Android from within Visual Studio on Windows, it is also possible to use the open source MonoDevelop environment on either Mac OS X or on Windows.
Let's take a look at the process of getting set up for developing Mono for Android applications on Windows.
Mono for Android will either work in Visual Studio or you can work with the open source MonoDevelop IDE. If you favour Visual Studio, then you require a copy of Visual Studio Professional or higher installed. Mono for Android will not work with Visual Studio Express thanks to the Express versions not supporting the plug-in UI, which Mono for Android relies on to work.
Note: The following sections on installing the JDK and the Android SDK are technically unnecessary as the Mono for Android installer will check for them and install them for you you if found absent. In the case of the Android SDK it will also ensure that emulator images are created and ready for use. The additional information is included for information, in case you want to set things up manually.
The Android SDK has various dependencies on the Java Development Kit for the Java Platform, Standard Edition 6 (JDK 6 or JDK SE 6) so this must be installed first.
You can download the JDK from Oracle's web site (click the JDK link).
Note: JDK 6 is no longer the latest version available from Oracle, but because of various changes in some of the Java tools in JDK 7, you should still install JDK 6.
Note: The JDK is a superset of the JRE (Java Runtime Environment). The JRE is insufficient; it's the JDK that must be installed.
Note: You must install the 32-bit JDK, even on 64-bit Windows.
At the time of writing the current version of JDK 6 is Update 30 and the installer is called
jdk-6u30-windows-i586.exe (78.9 MB).
Note: It is recommended to add the JDK's bin directory to the system
PATH (see below for information on how to add to the system
PATH). So, for example on 64-bit Windows with the JDK version mentioned above, you'd
C:\Program Files (x86)\Java\jdk1.6.0_30\bin to the PATH, and on
32-bit Windows you'd add
The installation is quite straightforward.
This involves a couple of steps.
Firstly, download the Android SDK installer from the Android SDK page.
Note: the SDK installer is available as a ZIP file to unzip where
you choose (currently called
android-sdk_r16-windows.zip at 28.2 MB)
or as an installer executable (currently called
also at 28.2 MB). It is recommended to use the executable installer, as this puts
things in standard locations and also adds registry entries identifying where the
SDK is found and adds a Start Menu folder for the Android SDK Tools.
If you simply unzip the zipped version, these registry entries will not be present and the Mono for Android installer will fail to locate the SDK, meaning it will install a new version in
Note: If the installer complains that the JDK cannot be found,
just click the installer's
Back button followed by the
button and it should find it on the second attempt.
Secondly, to pull down the main parts of the Android SDK, run the SDK Manager. If
you used the zipped version of the SDK installer you will need to locate and run
SDK Manager.exe from wherever you unzipped the files to.
By default this will be
C:\Program Files\Android\android-sdk-windows\SDK Manager.exe,
C:\Program Files (x86)\Android\android-sdk-windows\SDK Manager.exe
if running in 64-bit Windows.
Note: if you are running Windows Vista or Windows 7 you should
run the SDK Manager as an Administrator (use the menu item on the application shortcut's
context menu). This is because the installer defaults to installing the Android
SDK materials under
C:\Program Files and this is a protected directory
in recent versions of Windows. When the SDK Manager starts downloading the required
portions of the SDK it will need administrative privileges to avoid simply failing.
You can now choose parts of the SDK to install. You must install the Android SDK Tools and the Android SDK Platform-tools. In addition you can choose which SDK platform versions to install. Each platform version relates to a different version of Android. So, for example, SDK Platform 2.2, API 8 is the FroYo release of Android and SDK Platform 2.3.3, API 10 is the updated (maintenance release) Gingerbread release.
You can also choose to install a local copy of the API documentation if you wish. This allows access to the reference materials when not connected to the Internet.
Note: the packages available for download by the SDK Manager are regularly updated, and so the revisions shown in the screenshot above may be different to what you see. Additionally, the documentation package available typically matches the latest available API release and so will be found as one of the options for the latest available API release (as in the screenshot above).
Note: Once you have an updated
tools directory in
your Android SDK directory you can also invoke the SDK Manager by launching
a batch file found in this
To ensure you can readily run commands at later points you should add a couple of the Android SDK folders onto the system PATH.
To edit the system environment variables you need to go to the Advanced page of the System properties dialog. A couple of shortcut ways of getting there are:
˙+Breakthen click on
Advanced system settings
Environment Variables..., select PATH from the list of System
Edit... and add additional semicolon separated paths.
The paths to add are the tools and platform-tools folders under the SDK directory,
so on a 64-bit Windows system with default installation that means adding these
C:\Program Files (x86)\Android\android-sdk-windows\tools
C:\Program Files (x86)\Android\android-sdk-windows\platform-tools
In order to test your applications on various potential device configurations you can set up emulators (Android Virtual Devices or AVDs) for different screen sizes, densities, Android platform and SD card size.
Note: while you can create AVDs yourself, the Mono for Android installer will also create various AVDs for you that are set up appropriately to test Mono for Android applications. This information is here just so you know the process of creating AVDs.
You can launch the Android Virtual Device Manager in various ways:
android avd(i.e. passing
avdas a command-line parameter to the
New... button to create a new AVD, choose its attributes and
give it a name.
Create AVD button will create the virtual device and indicate
success with a message like this:
You can see in the earlier screenshot that the Virtual Devices page tells you these
emulator images are stored in
%USERPROFILE%\.android\avd - in my case
this expands to the
Note: It should be mentioned again that if you decide to install
additional packages after invoking the SDK Manager through the android batch file,
you will likely need to have launched it with administrative privileges. You can
do so by running the batch file from a command prompt that was run as administrator.
An alternative in Windows 7 and (I think also) in Windows Vista is to press ˙ to bring up the Start menu, type in the
android command, then press
Ctrl+Shift+Enter to run
the command as administrator (where just pressing
Enter would run as
the logged in user).
Note: You can start Android virtual devices (emulator images) from the SDK Manager but this is not recommended. It is best to let Mono for Android start the emulator as it ensures the emulator is launched with an appropriate partition size through a command line parameter.
Lastly you need to install Mono for Android. You can get Mono for Android from the Store site. You can either purchase a copy or download the trial version. The Professional version costs $399 and gives you updates for a year. The trial version is fully functional other than being restricted to only working with the Android emulator; you cannot deploy to a physical device.
Either way, the installation is straightforward and full coverage is available on the Mono for Android documentation pages - remember that if you skipped the installation steps above, Mono for Android will spot this and happily install things for you. Indeed, over and above the JDK and Android SDK, the Mono for Android installer will install GTK# and MonoDevelop before installing Mono for Android.
The installer screen above shows that it has found my Android SDK installation but
needs to do some additional setup to match its requirements, such as creating emulator
images for Mono for Android's use. On the other hand, if the Android SDK is not
found then it will be pulled down and installed in
You can see this happening below:
The installation is nearly done here:
And now we're ready to go. You can either launch the MonoDevelop IDE with the huge
button or press
Close and launch Visual Studio yourself.
In Visual Studio you should choose
Options... and then look at the Mono for
Android settings to ensure that it can correctly see your Android SDK directory.
Go back to the top of this page
Go back to start of this article