Chromium androidビルド

Post on 24-May-2015

2.840 views 3 download

Transcript of Chromium androidビルド

ソースを読む会Chromium のソースをさわってみる。ごめんなさい今回はさわるだけです。

2012/08/21 くまだす @kumadasu

112年8月21日火曜日

発表までの経緯

•最初は Android on Pandaboard のカメラ周りのソースをいじるつもりだったけど優先したい事案発生。

• Ubuntu on Pandaboard 向けに新しい Chromium をビルドしたい。(まだうまくいっていない)

•ソースを読む会とあまりに関係ないので Android 版にちょっと手を出してみた

212年8月21日火曜日

CHROMIUM

• Chrome のオープンソース版

•デスクトップ版Chromiumは何が違うのかわからない

• ARM, Android もビルド方法公開中...?

312年8月21日火曜日

ANDROID 版 CHROMIUM?ビルド環境

• Ubuntu12.04 少し新しすぎるかもでも可能

• 64bit 多分必須

•メモリ4GB、スワップ8GB 推奨

• Virtualboxの上でもできた

412年8月21日火曜日

BUILD INSTRUCTION

• http://code.google.com/p/chromium/wiki/AndroidBuildInstructions

•ここにすべてが書いてある

•リンクで結構飛ばされるけどね

•ふんふん言いながら進めているとビルド中に衝撃の事実発覚

512年8月21日火曜日

BEFORE

612年8月21日火曜日

!!!

At this time, a full compile does not build the browser. It only builds unit test

bundles. As more code becomes available in the public Chromium source, more

targets will be added.

712年8月21日火曜日

AFTER

•今のところフルコンパイルしてもブラウザにならないよ。ユニットテスト単位だよ。Chromiumのコードがもっと公開されたらターゲット増えていくよ。

812年8月21日火曜日

目標

• Android 版 Chromium のソースコードが公開されたらいち早くビルドできるようになる。

912年8月21日火曜日

ビルドの流れ

•開発に必要なツールの取得

• Chromium のソースコードの取得

• Android のビルドに必要なパッケージの取得

•ビルド

1012年8月21日火曜日

必要なツールの取得(1)

•まずUbuntuのパッケージ

•用意されたスクリプトを使うと楽。

• $ wget http://src.chromium.org/svn/trunk/src/build/install-build-deps.sh

• $ chmod +x install-build-deps.sh

• $ sudo ./install-build-deps.sh

1112年8月21日火曜日

必要なツールの取得(2)

• depot_tools の取得

• $ git clone https://git.chromium.org/chromium/tools/depot_tools.git

•パスの設定(必要なら ~/.bashrcへ)

• $ export PATH="$PATH":`pwd`/depot_tools

1212年8月21日火曜日

DEPOT_TOOLS の中身

• Google謹製の便利ツール集?(お馴染みrepoも含む)

• gclient : git, svn のすごいやつ?コード取得後に後処理のスクリプトが勝手に走っているような気もする。

• gyp : configure のすごいやつ。

• ninja : make のすごいやつ。(わからないので未使用)

1312年8月21日火曜日

ソースコードの取得

• $ cd ~/chromium

• $ gclient config https://src.chromium.org/chrome/trunk/src

• $ svn ls https://src.chromium.org/chrome

•編集→~/chromium/.gclient

•シンク(後述)

1412年8月21日火曜日

.GCLIENT の編集solutions = [ { "name" : "src", "url" : "http://src.chromium.org/svn/trunk/src", "deps_file" : "DEPS", "managed" : True, "custom_deps" : { "src/third_party/WebKit/LayoutTests": None, "src/chrome/tools/test/reference_build/chrome_win": None, "src/chrome_frame/tools/test/reference_build/chrome_win": None, "src/chrome/tools/test/reference_build/chrome_linux": None, "src/chrome/tools/test/reference_build/chrome_mac": None, "src/third_party/hunspell_dictionaries": None, }, "safesync_url": "http://chromium-status.appspot.com/lkgr", },]target_os = ['android']

テストコードの取得を省略

Android関係のソースを含める

1512年8月21日火曜日

ソースコードの取得の続き

• $ gclient sync -j8 --nohooks

• $ . build/android/envsetup.sh

• $ gclient runhooks ここの . と build の間のスペース超重要

そのままsyncするとhookが走って二度手間?

1612年8月21日火曜日

ANDROID のビルドに必要なパッケージの取得

• cd ~/chromium/src/build

• sudo ./install-build-deps-android.sh

•これが ant1.8 が見つからないといって止まる。

• java のパッケージも見つからない

•これらを越えてもなんかエラーがでる。

1712年8月21日火曜日

スクリプトの修正

• install-build-deps-android.sh

• Ubuntu12.04 では ant1.8 が標準になり名前が ant になってる。

• # Install deps

• sudo apt-get -y install python-pexpect ant1.8 xvfb x11-utils

1812年8月21日火曜日

JAVA のインストール準備

• Oracle Java になってから少し手順が面倒

• cd ~/

• wget https://github.com/flexiondotorg/oab-java6/raw/0.2.5/oab-java.sh -O oab-java.sh

• chmod +x oab-java.sh

• sudo ./oab-java.sh

1912年8月21日火曜日

改めてスクリプトの実行

• sudo ./install-build-deps-android.sh

•下のようなエラーがでるけど無視してよし。

• WARNING: java-6-sun has no alternatives for the following plugins:

• update-alternatives: error : no alternatives for mozilla-javaplugin.so.

2012年8月21日火曜日

コンフィグ&ビルド!

• $ cd ~/chromium/src

• $ . build/android/envsetup.sh

• $ android_gyp

• $ make -j8

2112年8月21日火曜日

テスト実行

•いずれもpythonスクリプトで実行

•実機およびエミュレータでテスト可能 らしい

• Running Tests

• Running Instrumentation Tests

• Content Shell (in development)

2212年8月21日火曜日

ビルド後のフォルダ容量

• 18.9GB

2312年8月21日火曜日

これを応用すると...

• Linux, Mac, Win

• 32bit, 64bit, ARM

• Chromium OS!

• http://dev.chromium.org/chromium-os/developer-guide#TOC-Decide-where-your-source-will-live

2412年8月21日火曜日

CHROMIUM OS のビルド

2512年8月21日火曜日

CHROMIUM OS のビルド

• Ubuntu 上で chroot 使って Gentoo? っぽい環境を作って開発。

•手順が結構複雑ですが興味があればぜひ

•私は Pandaboard のオプション使ってやってみたけど、ビルドイメージがうまく動かなかった。

2612年8月21日火曜日

感想

•公式ページの情報が一部古い

•なんかおかしいと思ったら最下部のコメント欄にヒントがあるかも。

• Pandaboard な Linux 向け Chromium のビルドはまだうまく行っていない。ビルドはできているけど実行時の no such file or directory に悩まされてる。

2712年8月21日火曜日