Chromium for Android のビルド方法
7/Feb 2014
Android用のChromiumをビルドしたくなったのでしてみました。
基本的に本家に書かれていることをやるだけです。
http://code.google.com/p/chromium/wiki/AndroidBuildInstructions
環境
ubuntu 12.04.3 64bit Desktop
国内ミラーだと例えば理研などがあります。
http://ftp.riken.jp/Linux/ubuntu-iso/CDs/precise/
Java6のインストール
あらかじめOracle Java6をインストールしておく。
こちらのサイトを参考にさせて頂きました。
http://qiita.com/ka_/items/dbeca6fac63a6e8ec9a6
以下のごとくppaを追加してインストールしてください。
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java6-installer
depot_toolsのインストール
chromiumのソースコード取得やビルドに必要なツール群です。
今回直接関係しているのはソース取得のgclient、コンフィグのgyp、ビルドシステムのninjaだけ(たぶん)ですが他にもいろいろあるようです。
http://dev.chromium.org/developers/how-tos/depottools
今回は~/にchromiumというディレクトリを作成し、depot_toolsやchromiumのソースはその中におとすことにします。
$ mkdir ~/chromium && cd ~/chromium
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
$ export PATH="$PATH":`pwd`/depot_tools
ソースコードとビルドに必要なモジュールの取得
https://sites.google.com/a/chromium.org/dev/developers/how-tos/get-the-code
$ fetch --nohooks android --nosvn=True # コミッタでない場合は --nosvn=True
$ cd src
$ ./build/install-build-deps.sh
$ gclient sync --nohooks
Android用のビルドに必要なその他のツールをインストールするスクリプトです。
ubuntuのバージョンによって必要なライブラリなどをインストールするものですが、ここで引っかかる場合は少々美しくないですが、スクリプトの中身を見て手動で apt-get install
を実行してみてください。
$ sudo ./build/install-build-deps-android.sh
ビルド
これでビルドの準備ができましたので、ビルドします。
ビルドにはninjaというビルドシステムを使用します。
ninjaとはgoogleが開発したビルドシry。要するにmakeのすごい版ですかね(汗
http://code.google.com/p/chromium/wiki/NinjaBuild
$ export GYP_GENERATORS=ninja
$ . build/android/envsetup.sh
$ android_gyp
$ ninja -C out/Release -j8 chromium_testshell
src/でninjaしてください。
Cオプションは、バイナリなどの出力先です。apkはこのなかのapksというディレクトリに生成されます。
jオプションはmakeと同じで並列job数です。指定しない場合はcpuのコア数から算出した妥当な値が設定されるようです。
最後のchromium_testshell
はビルドターゲットです。指定しない場合はすべてビルドされます。わりと時間がかかるので必要なものを指定してビルドすることをオヌヌメします。
ターゲットの例。他にunit testなどがあるようですが、未調査。
- chromium_testshell
- content_shell_apk
- android_webview_apk
ビルド時間
気になるビルド時間ですが、i5の2500/メモリ16GBのマシンで-j8してフルビルド1時間程度だと思います。timeし忘れかつ他の作業をしていたので正確ではないですが。 結構かかりますよね。Kitkatのフルビルドくらいかかります。
できたapkの確認
$ ls out/Release/apks
その他
以上でまっさらのubuntu上でのビルドは特に滞りなくビルドできると思います。
もしかして他になにか依存関係解決したり足りないモジュールをインストールしたような気もします。
思い出しながら書いたので間違いやうまくいかないところなどあればご指摘ください。