Working with Android code requires using Git (an open-source version-control system) and Repo (a Google-built repository-management tool that runs on top of Git). See Source Control Workflow for a summary of regular actions, such as uploading changes for review.
Git is designed to handle large projects that are distributed over multiple repositories. Android uses Git for local operations such as local branching, commits, diffs, and edits. One of the challenges in setting up the Android project was figuring out how to best support the outside community—from the hobbyist community to large OEMs building mass-market consumer devices. We wanted components to be replaceable, and we wanted interesting components to have a life of their own outside of Android. We first chose a distributed revision control system, then narrowed it down to Git.
For more details on Git, refer to Git Documentation.
Repo comes in two parts: The Repo Launcher you
download and install from
git-repo-downloads. It's a Python
script that knows how to initialize a checkout and
can download the second part, the full Repo tool, included in an Android source
code checkout. The full Repo tool is by default in
receives forwarded commands from the downloaded Repo Launcher.
Repo isn't meant to replace Git, only to make it easier to work with Git in
the context of Android. It uses
manifest files to aggregate Git projects into the Android
repo command is an executable Python script
that you can put anywhere in your path. In working with the Android source
files, you use Repo for across-network operations, for example, with a single
Repo working directory.
In most situations, you can use Git instead of Repo, or mix Repo and Git commands to form complex commands. However, using Repo for basic across-network operations makes your work much simpler. For more details on Repo, see the Repo Command Reference, Repo README, the Preupload Hooks (tests) that can be enabled in Repo, and general docs in AOSP.
Gerrit is a web-based code review system for projects that use Git. Gerrit encourages a more centralized use of Git by allowing all authorized users to submit changes, which are automatically merged if they pass code review. In addition, Gerrit makes reviewing easy, displaying changes side by side in the browser and enabling inline comments.
Android Code Search
Android Code Search allows you to search AOSP without downloading anything. You can use Code Search to view the AOSP source code, switch between open source branches, and navigate cross-references. For more information, see the Google Developers site for the Code Search documentation.
Android Studio is the official integrated development environment (IDE) for Android app development.
Android Debug Bridge (ADB) lets you connect your development workstation directly to your Android device so you can install packages and evaluate your changes.
Repo comes in two parts: One is a launcher script you install, and it communicates with the second part, the full Repo tool included in a source code checkout. To install Repo:
Make sure that you have a
bin/directory in your home directory and that it's included in your path:
Download the Repo Launcher and ensure that it's executable:
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
Optionally verify the launcher matches our signatures:
gpg --recv-key 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65
curl https://storage.googleapis.com/git-repo-downloads/repo.asc | gpg --verify - ~/bin/repo
Older repo for legacy Python 2 systems
If you're using an older system without Python 3.6+, try downloading an older version of the Repo Launcher that still supports Python 2.7. This won't work indefinitely but might help until your system is upgraded.
curl https://storage.googleapis.com/git-repo-downloads/repo-1 > ~/bin/repo
chmod a+x ~/bin/repo