here. As of Android Studio 1.4, Android Studio is aligning to the same model of releasing source code after each stable release. For those who contribute to Android Studio, the code contribution process is essentially the same as the Android platform. We expect to continue to release a stable version of Android Studio approximately every 2 -4 months, and at each of the these release the source code will be made available. Please continue to submit patches to the Android Studio AOSP branch. We will do code-reviews and merge changes into subsequent versions of Android Studio. We're incredibly grateful to all of you in the community for your collaboration and hard work on Android Studio.
We currently have the following possible branches for previous versions of Android Studio:
The branches ub-tools-idea133 and ub-tools-master are deprecated. We are also not using master.
Doing a Checkout
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: http://source.android.com/source/initializing.html.
Some of the requirements are not needed (case-sensitive file system for instance), unless you also plan on building the platform. If you're on Mac you will still need XCode to build the emulator.
Once you have everything configured, download the 'repo' tools by following the instructions here: http://source.android.com/source/downloading.html
Then you can check out the source code using the following commands in a shell:
(You can obviously call the top level directory what you want; those of us who check out multiple branches prefer to name the directories after the branches.)
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.
If you'd like to check out and build the 1.4 release tag, use the following command instead
followed by repo sync as before.
We are starting to tag releases. This means you can use the tag to get the source code for a specific version. We are currently using the following tags:
For instance you can do a checkout of version 1.0.0 of the Gradle plugin with the following command:
For Studio 1.4, the release tag was "
The parts of the SDK that can be build with the studio-* 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.
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.)
For instructions, see Building the Android Gradle Plugin.
This part only builds the SDK Tools. Follow these steps:
This will build the SDK Tools for your current platform. the result is located in out/sdk/
This is composed of
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:
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.
Note that this will build both a Linux SDK then a Windows SDK. The result is located at
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.
The next step is preparing your setup depending on which project you want to work on: