ビルド環境の確立
このセクションでは、Androidソースファイルをビルドするためにローカル作業環 Windowsでのビルドは現在サポートされていません。
コードレビューおよびコード更新プロセス全体の概要については、”パッチの有効期間”を参照してください。
ブランチの選択
ビルド環境のいくつかの要件は、コンパイルする予定のソースコードのバージョンによって決まります。 利用可能なブランチの完全なリストについては、ビルド番号を参照してください。 また、最新のソースコード(master
と呼ばれる)をダウンロードしてビルドすることもできます。
ブランチを選択した後、以下の適切な手順に従ってビルド環境を設定します。
Linux buildenvironmentのセットアップ
これらの手順は、master
を含むすべてのブランチに適用されます。Androidビルドは、Ubuntu LTS(14.04)とDebianテストで社内で定期的にテストされています。 他のほとんどのディストリビューションでは、必要なビルドツールが利用可能である必要があります。
ジンジャーブレッドのために(2.3。x)およびそれ以降のバージョン、master
ブランチを含む、64ビット環境が必要です。 古いバージョンは32ビットシステムでコンパイルできます。必要なパッケージのインストール(Ubuntu18.04)
64ビットバージョンのUbuntuが必要です。必要なパッケージのインストール(Ubuntu14.04)
64ビットバージョンのUbuntuが必要です(14.04を推奨)。p>
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip
必要なパッケージのインストール(Ubuntu12。04)
古いバージョンのAndroidをビルドするには、Ubuntu12.04を使用することができます。 バージョン12.04はmaster
または最近のリリースではサポートされていません。
必要なパッケージのインストール(Ubuntu10.04-11.10)
Ubuntu10.04-11.10でのビルドはサポートされなくなりましたが、AOSPの古いリリースをビルドするのに役立ちます。P>Ubuntu10.10の場合:
sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so
Ubuntu11.10の場合:
sudo apt-get install libx11-dev:i386
USBアクセスの設定
コミュニティが維持するデフォルトのセットをインストールしますudev
すべてのAndroidデバ
個別のoutputdirectoryを使用する
デフォルトでは、各ビルドの出力は、一致するソースツリーのout/
サブディレクトリに格納されます。
複数のストレージデバイスを持つ一部のマシンでは、ソースファイルと出力を別々のボリュームに格納すると、ビルドが高速になります。 追加のパフォーマンスのために、出力は、ファイルシステムが破損している場合、すべてのファイルを再生成することができるので、クラッシュロバストネスの代わりに速度のために最適化されたファイルシステムに保存することができます。
これを設定するには、出力ディレクトリが格納される場所を指すように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
/source/master2
/output/master2
。
ソースツリーが出力ディレクトリを共有し、予測できない結果になるため、同じ名前のディレクトリに複数のソースツリーを格納することは避けてくださ これは、master
ブランチを含むJelly Bean(4.1)以降でのみサポートされています。
macOSビルド環境の設定
デフォルトのインストールでは、macOSは大文字と小文字を区別しませんが、ファイルシステム上で実行されます。 このタイプのファイルシステムはGitではサポートされておらず、一部のGitコマンド(git status
など)が異常に動作します。 このため、大文字と小文字を区別するファイルシステムでは、常にAOSPソースファイルを使用することをお勧めします。 これは、以下で説明するディスクイメージを使用してかなり簡単に行うことができます。適切なファイルシステムが利用可能な場合、最新のmacOS環境でmaster
ブランチを構築するのは簡単です。 以前のブランチでは、いくつかの追加のツールとSdkが必要です。
大文字と小文字を区別するdiskimageの作成
ディスクイメージを使用して、既存のmacOS環境内で大文字と小文字を区別するファイルシステムを作 イメージを作成するには、Disk Utilityを起動し、New Imageを選択します。 250GBのサイズは、ビルドを完了するための最小値であり、より多くのスペースは、将来の成長のために最適です。 疎な画像を使用すると、スペースが節約され、必要に応じて成長できます。 ボリューム形式としてジャーナル処理された大文字と小文字を区別するを選択します。
次のコマンドを使用してシェルからファイルシステムを作成することもできます。
hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 250g ~/android.dmg.sparseimage
これにより、.dmg.sparseimage
ファイルが作成されます。
後で大きなボリュームが必要な場合は、次のコマンドでスパースイメージのサイズを変更できます。
hdiutil resize -size <new-size-you-want>g ~/android.dmg.sparseimage
android.dmg.sparseimage
~/.bash_profile
:
- 実行時にイメージをマウントするには
mountAndroid
# mount the android file imagemountAndroid() { hdiutil attach ~/android.dmg.sparseimage -mountpoint /Volumes/android; }
- 実行時にマウントを解除するには
umountAndroid
# unmount the android file imageumountAndroid() { hdiutil detach /Volumes/android; }
実行後にイメージをマウントするにはmountAndroid
# mount the android file imagemountAndroid() { hdiutil attach ~/android.dmg.sparseimage -mountpoint /Volumes/android; }
android
ボリュームをマウントした場合、そこですべての作業を行います。 外付けドライブと同じように取り出し(アンマウント)することができます。Xcodeおよびその他のパッケージのインストール
- Xcodeコマンドラインツールをインストールします。
xcode-select --install
古いバージョンのmacOS(10.8以下)の場合は、Apple developer siteからXcodeをインストールする必要があります。 Apple開発者として登録されていない場合は、ダウンロードするApple IDを作成する必要があります。
- パッケージ管理のためにMacPortsまたはHomebrewのいずれかをインストールします。
- 関連するディレクトリがあなたのパス内にあることを確認してください
~/.bash_profile
ファイル:- MacPorts-
/opt/local/bin
/usr/bin
export PATH=/opt/local/bin:$PATH
- 自作-
/usr/local/bin
export PATH=/usr/local/bin:$PATH
- MacPorts-
- macportsのために、問題:
POSIXLY_CORRECT=1 sudo port install git gnupg
- 自作のために、問題:
POSIXLY_CORRECT=1 sudo port install git gnupg
- :
brew install git gnupg2
ファイル記述子の制限の設定
macOSでは、同時に開いているファイル記述子の数のデフォルトの制限が低すぎて、高度に並列 キャップを増やすには、次の行を~/.bash_profile
に追加します。
# set the number of open files to be 1024ulimit -S -n 1024