ビルド環境の確立

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

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

ブランチの選択

ビルド環境の一部の要件は、コンパイルする予定のソースコードのバージョンによって決まります。使用可能なブランチの完全なリストについては、ビルド番号を参照してください。最新のソースコード( 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アクセスの構成

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

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

デフォルトでは、各ビルドの出力は、一致するソースツリーの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)以降でのみサポートされます。

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

ビルド環境は良好です。ソースのダウンロードに進みます。