LoginSignup
20
20

More than 5 years have passed since last update.

Amazon EC2上でChromium for Androidをビルドする

Last updated at Posted at 2012-12-26

おおまかには http://code.google.com/p/chromium/wiki/AndroidBuildInstructions ここに記載されてる手順に従うのだけど、わけあってAmazon EC2上のインスタンスでビルドしたので誰かの参考になればと。ただし、2012/08/22時点ではまだブラウザ本体のビルドに必要なコードが公開されておらず、生成されるapkはユニットテスト用のもの。本体ソースはよ。
→その後、某先生から指摘を頂き どうやらその後ツールセット更新、コード公開などありChromium本体をビルド出来るようになっていたようなので(&不足パッケージ指摘も頂いた)2013/02/13に手順更新しました。

前準備: インスタンス立ち上げ

Ubuntuでは、なんと公式のEC2用AMIを用意しているので、 http://cloud-images.ubuntu.com/releases/precise/release/ にあるUbuntuの公式イメージからインスタンスを生成(生成したいリージョンを選んでリンククリック)。
今回の構成は

  • US-Westリージョン(SVNで大量のファイルを拾ってくるので、どうせならネットワークレイテンシの低そうなところにしてみた。Tokyoでもok)
  • ami-db86a39e
  • Largeインスタンス
  • rootボリュームサイズ=60GiB

とした。

必要なパッケージのインストール

$ sudo apt-get update
$ sudo apt-get upgrade

一応12.04リリース以降の変更を取り込み、その後ごっそり依存ライブラリを突っ込む。

$ sudo apt-get install git-core subversion libgtk2.0-dev libc6-dev-i386 libgconf2-dev libgnome-keyring-dev libdbus-glib-1-dev libudev-dev gperf bison libpci-dev g++-multilib

それから、後で詰まないようにsun-java6-jre sun-java6-bin sun-java6-jdkをなんとかしてインストール( http://www.gaggl.com/2012/04/installing-java6-jdk-on-ubuntu-12-04/ こういう方法とかがあるらしい)しておく。
あと、antの1.8がUbuntu12.04では用意されてないので10.04のものを拾ってきてインストールしておく。

$ wget http://mirror.pnl.gov/ubuntu//pool/main/a/ant1.8/ant1.8_1.8.0-4ubuntu1_all.deb
$ wget http://mirror.pnl.gov/ubuntu//pool/main/a/ant1.8/ant1.8-optional_1.8.0-4ubuntu1_all.deb
$ sudo dpkg -i ant1.8_1.8.0-4ubuntu1_all.deb ant1.8-optional_1.8.0-4ubuntu1_all.deb

Chromiumのソースコードをダウンロード

基本的に、前の段階で必要なもの(ant1.8とかsun-java-*とか)をインストールしていれば

の手順通り。具体的には

$ cd ~ && mkdir Chromium && cd Chromium && git clone https://git.chromium.org/chromium/tools/depot_tools.git && export PATH="$PATH":`pwd`/depot_tools && gclient config https://src.chromium.org/chrome/trunk/src && echo "target_os = ['android']" >> .gclient

これでソース取得用の設定作成。丸ごと1行コピペでok。続いて

$ gclient sync --nohooks && export GYP_GENERATORS=ninja && . ./src/build/android/envsetup.sh && gclient runhooks

でソース取得と前処理(GYP_GENERATORS環境変数は.bash_profileなどに予め書いておいても良いかもしれません)。

$ cd src/build/ && sudo ./install-build-deps-android.sh

でAndroid関連のビルドに必要なパッケージを追加取得。

ビルド

ここまでやったら

$ cd ~/Chromium/src && android_gyp && ninja -C out/Release -j6 content_shell_apk

でok(並列度をどれくらいにするかは、インスタンスによって変更)。Largeインスタンスで、ソース取得から現状でのapk完成まで4時間ぐらいだったかな。結構かかるのでもっと高グレードのインスタンスを使ったほうが良いかもしれません。

ubuntu@ip-xx-xxx-xx-xxx:~/Chromium/src/out$ find . -name '*.apk' | xargs ls -l
-rw-rw-r-- 1 ubuntu ubuntu 361622 Aug 22 13:11 ./Debug/ipc_tests_apk/ipc_tests-debug.apk
-rw-rw-r-- 1 ubuntu ubuntu 361621 Aug 22 13:11 ./Debug/ipc_tests_apk/ipc_tests-debug-unaligned.apk
-rw-rw-r-- 1 ubuntu ubuntu 10637 Aug 22 13:11 ./Debug/replaceme_apk/replaceme-debug.apk
-rw-rw-r-- 1 ubuntu ubuntu 10636 Aug 22 13:11 ./Debug/replaceme_apk/replaceme-debug-unaligned.apk
-rw-rw-r-- 1 ubuntu ubuntu 16286294 Feb 13 06:14 ./Release/apks/ContentShell.apk
-rw-rw-r-- 1 ubuntu ubuntu 16286277 Feb 13 06:14 ./Release/apks/ContentShell-unaligned.apk
-rw-rw-r-- 1 ubuntu ubuntu 16283376 Feb 13 06:14 ./Release/apks/ContentShell-unsigned.apk

出来てますね! あとはadbで普通にインストールすればokです。

20
20
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
20