ビルド環境の確立

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

このセクションでは、ローカル作業環境をセットアップして Android ソース ファイルをビルドする方法について説明します。 Linux を使用する必要があります。 MacOS または Windows でのビルドはサポートされていません。 /usr/bin/pythonバイナリへの重要な変更にも注意してください。

コードレビューとコード更新プロセス全体の概要については、パッチの有効期間を参照してください。

支店の選択

ビルド環境の一部の要件は、コンパイルする予定のソース コードのバージョンによって決まります。利用可能なブランチの完全なリストについては、 Build Numbersを参照してください。最新のソース コード ( masterと呼ばれる) をダウンロードしてビルドすることも選択できます。この場合、リポジトリを初期化するときにブランチの指定を省略します。

ブランチを選択したら、以下の適切な手順に従ってビルド環境をセットアップします。

Linux ビルド環境のセットアップ

これらの手順は、 masterを含むすべてのブランチに適用されます。

Android ビルドは、Ubuntu LTS (14.04) および Debian テストで社内で定期的にテストされています。他のほとんどのディストリビューションには、必要なビルド ツールが用意されているはずです。

masterブランチを含む Gingerbread (2.3.x) 以降のバージョンでは、64 ビット環境が必要です。古いバージョンは、32 ビット システムでコンパイルできます。

必要なパッケージのインストール (Ubuntu 18.04)

Ubuntu の 64 ビット バージョンが必要です。

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

必要なパッケージのインストール (Ubuntu 14.04)

Ubuntu の 64 ビット バージョンが必要です (14.04 をお勧めします)。

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip

必要なパッケージのインストール (Ubuntu 12.04)

Ubuntu 12.04 を使用して、古いバージョンの Android をビルドできます。バージョン 12.04 は、 masterまたは最近のリリースではサポートされていません。

sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

必要なパッケージのインストール (Ubuntu 10.04-11.10)

Ubuntu 10.04-11.10 でのビルドはサポートされなくなりましたが、古いリリースの AOSP をビルドするのに役立つ場合があります。

sudo apt-get install git gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc

Ubuntu 10.10 の場合:

sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so

Ubuntu 11.10 の場合:

sudo apt-get install libx11-dev:i386

USB アクセスの設定

開発用にデバイスをセットアップするの手順に従って、コミュニティが管理するデフォルトのudevルール セットをすべての Android デバイスにインストールします。

別の出力ディレクトリを使用する

デフォルトでは、各ビルドの出力は、一致するソース ツリーのout/サブディレクトリに保存されます。これは、 OUT_DIR環境変数をエクスポートすることでオーバーライドできます。例えば:

export OUT_DIR=out_mytarget

これにより、ビルドの出力がソース ツリーのout_mytarget/サブディレクトリに格納されます。同じソース ツリーを使用して複数のターゲットをビルドする場合は、ターゲットごとに個別のOUT_DIRを使用することをお勧めします。

複数のストレージ デバイスを備えた一部のマシンでは、ソース ファイルと出力を別々のボリュームに保存すると、ビルドが高速になります。ファイル システムが破損した場合はすべてのファイルを再生成できるため、パフォーマンスを向上させるために、クラッシュの堅牢性ではなく速度を最適化したファイル システムに出力を格納できます。

これを設定するには、 OUT_DIR_COMMON_BASE変数をエクスポートして、出力ディレクトリが保存される場所を指定します。

export OUT_DIR_COMMON_BASE=<path-to-your-out-directory>

個別のソース ツリーごとの出力ディレクトリは、ソース ツリーを保持するディレクトリにちなんで命名されます。たとえば、ソース ツリーが/source/master1/source/master2で、 OUT_DIR_COMMON_BASE/outputに設定されている場合、出力ディレクトリは/output/master1/output/master2になります。

複数のソース ツリーを同じ名前のディレクトリに格納することは避けてください。ソース ツリーが最終的に出力ディレクトリを共有することになり、予測できない結果が生じる可能性があります。これは、 masterブランチを含む Jelly Bean (4.1) 以降でのみサポートされます。

次へ: ソースをダウンロードする

ビルド環境は準備完了です。ソースのダウンロードに進みます。