Advanced Concepts and Internals

This section contains topics that explain the architecture, API design, and limitations of Xamarin.Android. In addition, it includes topics that explain its garbage collection implementation and the assemblies that are available in Xamarin.Android. Because Xamarin.Android is open-source, it is also possible to understand the inner workings of Xamarin.Android by examining its source code.


This article explains the underlying architecture behind a Xamarin.Android application. It explains how Xamarin.Android applications run inside a Mono execution environment alongside with the Android runtime Virtual Machine and explains such key concepts as Android Callable Wrappers and Managed Callable Wrappers.

API Design

In addition to the core Base Class Libraries that are part of Mono, Xamarin.Android ships with bindings for various Android APIs to allow developers to create native Android applications with Mono.

At the core of Xamarin.Android there is an interop engine that bridges the C# world with the Java world and provides developers with access to the Java APIs from C# or other .NET languages.


Xamarin.Android ships with several assemblies. Just as Silverlight is an extended subset of the desktop .NET assemblies, Xamarin.Android is also an extended subset of several Silverlight and desktop .NET assemblies.