Mono for Android allows developers to use C# and .NET to build Android applications. It includes bindings for the Android API and uses a .NET runtime to execute code on Android. The application model is similar to regular Android apps, with activities, intents, services, etc. However, Mono for Android handles interfacing between .NET and Android's Java-based framework through callable wrappers. This allows nearly all of the Android API to be accessed from C#.