ソース管理ツール

Android のコードを操作するには、Git(オープンソースのバージョン管理システム)と Repo(Google が構築した、Git 上で実行できるリポジトリ管理ツール)の両方を使用する必要があります。レビュー用の変更のアップロードなど、実施可能な通常の操作の概要については、ソース管理ワークフローをご覧ください。

Git

Git は、複数のリポジトリに分散する大規模なプロジェクトを扱います。Android では、ローカルでのブランチ作成、コミット、差分の取得、編集などのローカル操作に Git を使用します。Android プロジェクトを立ち上げる際には、趣味として楽しむ個人が集まったコミュニティからコンシューマー向けデバイスを大量生産する大手 OEM まで、実にさまざまなコミュニティに対して最適なサポートを提供するにはどうすればいいかという課題がありました。置き換えが可能で、Android から離れた環境でも独自に利用できるコンポーネントが必要でした。そこで選んだのが分散リビジョン管理システムで、いくつかの候補の中から Git を採用することにしました。

Git の詳細については、Git のドキュメントをご覧ください。

Repo

Repo は、Git リポジトリの統合(必要な場合)、Gerrit リビジョン管理システムへのアップロード、Android 開発ワークフローの部分的な自動化を行います。

Repo ランチャーには、チェックアウトを初期化し、もう 1 つの要素であるフル Repo ツールをダウンロードする Python スクリプトが用意されています。フル Repo ツールは、Android ソースコードのチェックアウトに含まれています。デフォルトで $SRCDIR/.repo/repo/... にあり、ダウンロードした Repo ランチャーから転送されるコマンドを受信します。

Repo は Git に代わるものではなく、Android 向けに Git を使いやすくするためのものにすぎません。Repo はマニフェスト ファイルを使用して、Git プロジェクトを Android スーパープロジェクトに集約します。Python 実行スクリプトである repo コマンドは、パス内のどこにでも配置できます。Android ソースファイルを操作する際、ネットワークをまたがる操作に Repo を使用できます(たとえば、単一の Repo 作業ディレクトリを使用します)。

ほとんどの場合、Repo の代わりに Git を使用できます。あるいは、Repo と Git のコマンドを組み合わせて複雑なコマンドを作成することもできます。ただし、ネットワークをまたがる基本的な操作を行う場合は、Repo を使用した方がはるかに作業が容易になります。Repo の詳細については、Repo コマンド リファレンスRepo の README、Repo で有効にできるプリアップロード フック(テスト)、AOSP の一般的なドキュメントをご覧ください。

Repo ランチャーを git-repo-downloads からダウンロードしてインストールするには、Repo のインストールをご覧ください。

Gerrit

Gerrit は、Git を使用するプロジェクトを対象としたウェブベースのコード審査システムです。Gerrit を利用することで、すべての認定ユーザーが変更内容を送信できるようになり、Git の使用が一元化されます(変更内容は、コード審査を通過すると自動的にマージされます)。また、Gerrit を利用すると、変更箇所がブラウザ内で並べて表示され、インライン コメントも可能になるため、審査が容易になります。

Android Gerrit 審査インターフェースについては、android-review.googlesource.com をご覧ください。また、コード ナビゲーション インターフェースについては、android.googlesource.com をご覧ください。

Android ソースコード検索を使用すると、何もダウンロードせずに AOSP 全体を検索できます。ソースコード検索を利用することで、AOSP のソースコードを表示したり、オープンソース ブランチを切り替えたり、相互参照をたどったりすることができます。詳細については、Google Developers サイトにあるソースコード検索のドキュメントをご覧ください。

その他のツール

Android Studio は Android アプリ開発用の公式の統合開発環境(IDE)です。

Android Debug Bridge(ADB)を使用すると、開発用ワークステーションを Android デバイスに直接接続できるため、パッケージをインストールして変更を評価できます。

AOSP 開発には Android Studio for Platform(ASfP)を使用します。