Advanced Topics

Deep Dive + Specialized Guides

PDF for offline use

Let us know how you feel about this

Translation Quality


last updated: 2018-02

The advanced topics section gives you a much deeper understanding of the internals of Xamarin.Android and explains more complex features such as the linker, different resources and the API design.


This page describes how to use the Android Accessibility APIs to build apps according to the accessibility checklist.

Building Apps

This section describes how the build process works and explains how to build ABI-specific APKs.

Application Package Sizes

This article examines the constituent parts of a Xamarin.Android application package and the associated strategies that can be used for efficient package deployment during debug and release stages of development.

Binding a Java Library

This guide explains how to incorporate Java libraries into Xamarin.Android apps by creating a Bindings Library.

Command Line Emulator

This article briefly touches starting the emulator via the command line.


This article describes the Xamarin.Android execution environment and the Android system properties that influence program execution.

Garbage Collection

This article covers the different types of objects that exist in a Mono for Android application, and how and when garbage collection occurs. It also provides some guidance on how to help the garbage collector.


This article explains how to use gdb for debugging a Xamarin.Android application.


This article outlines the limitations of Xamarin.Android as compared to using desktop Mono.

Installing a System App

This guide explains how to install a Xamarin.Android app as a System Application on an Android device or as part of a custom ROM.

Java Integration

This article provides an overview of the ways that developers can reuse existing Java components in Xamarin.Android apps.

Linking on Android

This article discusses the linking process used by Xamarin.Android to reduce the final size of an application. It describes the various levels of linking that can be performed and provides some guidance and troubleshooting advice to mitigate errors that might result from using the linker.


This article explains how to localize a Xamarin.Android into other languages by translating strings and providing alternate images.

Multi-Core Devices & Xamarin.Android

This article describes the different types Application Binary Interfaces that a Xamarin.Android application can be compiled for, and contains important information about ARMEABI and SMP devices.


This guide discusses Renderscript.

Setting the Debuggable Attribute

This article explains how to set the debuggable attribute so that tools such as adb can communicate with the JVM.

Using Native Libraries

This article explains how to embed native libraries in a Xamarin.Android application.

Embedding .NET in Java

This article explains how to use a tool to turn your .NET library into a native library that can be incorporated into a native Java-based Android app.

Working with the Android Manifest

This article introducts the AndroidManifest.xml file, and how it maybe be used to control functionality and describe the requirements of a Mono for Android application.

Writing Responsive Applications

This article discusses how to use threading to keep a Xamarin.Android application responsive by moving long-running tasks on to a background thread.

Xamarin for Java Developers

This article provides an introduction to C# programming for Java developers, focusing primarily on the C# language features that Java developers will encounter while learning about Xamarin.Android app development.

Xamarin Workbook

If it's not already installed, install the Xamarin Workbooks app first. The workbook file should download automatically, but if it doesn't, just click to start the workbook download manually.