ソース管理ツール

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

Git

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

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

Repo

Repo は、Git リポジトリの統合(必要な場合)、Gerrit リビジョン管理システムへのアップロード、Android 開発ワークフローの部分的な自動化を行います。Repo は 2 つの要素で構成されています。1 つは Repo ランチャーで、git-repo-downloads からダウンロードできます。Repo ランチャーは、チェックアウトの初期化方法を識別する Python スクリプトです。このスクリプトによって、もう 1 つの要素であるフル Repo ツールをダウンロードすることができます。フル Repo ツールは、デフォルトで $SRCDIR/.repo/repo/... にあり、ダウンロードした Repo ランチャーから転送されるコマンドを受信します。

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

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

他のツール

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

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

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