このセクションでは、ローカル作業環境をセットアップして 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) 以降でのみサポートされます。
次へ: ソースをダウンロードする
ビルド環境は準備完了です。ソースのダウンロードに進みます。