Build Overview

    Getting the source code

    First, you'll need to install the prerequisites for your platform. This means you'll have git, a C compiler, etc. There are quite a few steps here, and it's all platform dependent, so go to the official build instructions where we have detailed instructions:

    Some of the requirements are not needed (case-sensitive file system for instance), unless you also plan on building the platform. You will still need XCode to build the emulator.

    Once you have everything configured, download the 'repo' tools by following the instructions here:

    Then you can check out the source code using the following commands in a shell:

    $ mkdir ub-tools-idea133
    $ cd ub-tools-idea133
    $ repo init -u -b ub-tools-idea133
    $ repo sync

    During the repo init command, it will ask you for your name and e-mail address; these will be used later if you decide to check in changesets and upload them for review.

    We currently have the following possible branches:
    • ub-tools-idea133: our current development branch. This builds Studio on top of JetBrains' IDEA 13.x branch.
    • ub-tools-master: branch for future work, tracking JetBrains' current master branch. You should not work in this branch for now.


    The parts of the SDK that can be build with the ub-tools-* branches are only the IDE components and the SDK Tools. Each component is build differently due to varying build systems.

    None of them uses the make-based build system of the platform.

    Building Android Studio

    Historically, building the Android tools required building the full Android SDK as well, since for example the emulator needed the system image.

    However, we've been gradually migrating the tools source code over to a more independent setup, and you can now build the Android Studio IDE without a full Android checkout and without a C compiler etc. The instructions for building Android Studio are listed in the Building Android Studio page; the remainder of this document documents the process for building the rest of the tools (the Eclipse plugin, the emulator, etc.)

    Building the Android Gradle Plugin

    For instructions, see Building the Android Gradle Plugin.

    Building the Linux and MacOS SDK

    This part only builds the SDK Tools. Follow these steps:

    $ mkdir -p out/dist
    $ ./tools/buildSrc/servers/ `pwd`/out `pwd`/out/dist 1234

    This will build the SDK Tools for your current platform. the result is located in out/sdk/

    This is composed of
    • The emulator and associated executables and libraries
    • Java-based standalone tools
    • Monitor

    To work on the Java-based tools only, you can open the IJ project located in tools/base.

    To build / test the java tools only:

    $ cd tools/
    $ ./gradlew assemble // builds only
    $ ./gradlew check // runs tests as well.

    Building the Windows SDK

    These instructions are currently obsolete. Coming soon.

    Full Windows SDK builds are only supported on Linux -- most of the framework is not designed to be built on Windows so technically the Windows SDK is build on top of a Linux SDK where a few binaries are replaced.

    $ sudo apt-get install mingw32 tofrodos

    mingw32 is the cross-compiler, tofrodos adds a unix2dos command

    To build:

    $ . build/
    $ lunch sdk-eng
    $ make win_sdk

    Note that this will build both a Linux SDK then a Windows SDK. The result is located at

    Building the Eclipse-based Tools.

    To set up your Eclipse environment to build, edit and debug the Eclipse plug-ins for Android, see the "Building the Eclipse-Based Tools" document.

    Additional Tools

    The next step is preparing your setup depending on which project you want to work on:
    • Traceview, Hierarchy Viewer and DDMS are all setup as follows:
      • The core logic resides in the Java projects under sdk/traceview, sdk/hierarchyviewer2 and sdk/ddms respectively. Import these projects into Eclipse.
      • The above projects generate jar files that are then referenced by their corresponding plugins. traceview-plugin, hierarchyviewer-plugin and ddms-plugin, all of which are present under sdk/eclipse/plugins.
    • TODO: add instructions to work on emulator.