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

               2012/08/21 くまだす @kumadasu



12年8月21日火曜日                                1
発表までの経緯

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

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

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

12年8月21日火曜日                                        2
CHROMIUM


  • Chrome    のオープンソース版

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


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



12年8月21日火曜日                        3
ANDROID 版 CHROMIUM?
                 ビルド環境
  • Ubuntu12.04 少し新しすぎるかもでも可能


  • 64bit 多分必須


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

  • Virtualboxの上でもできた



12年8月21日火曜日                     4
BUILD INSTRUCTION

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

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


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


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

     実発覚

12年8月21日火曜日                                   5
BEFORE




12年8月21日火曜日            6
!!!


              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.




12年8月21日火曜日                                                 7
AFTER




  • 今のところフルコンパイルしてもブラウザにならない

     よ。ユニットテスト単位だよ。Chromiumのコードがも
     っと公開されたらターゲット増えていくよ。

12年8月21日火曜日                         8
目標



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




12年8月21日火曜日                                9
ビルドの流れ

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


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

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

  • ビルド



12年8月21日火曜日                      10
必要なツールの取得(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

12年8月21日火曜日                                                              11
必要なツールの取得(2)

  • depot_tools      の取得

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

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

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


12年8月21日火曜日                                                    12
DEPOT_TOOLS の中身

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


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

  • gyp       : configure のすごいやつ。

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

12年8月21日火曜日                                    13
ソースコードの取得

  •$    cd ~/chromium

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

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

  • 編集→~/chromium/.gclient


  • シンク(後述)


12年8月21日火曜日                                                       14
.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", Android関係の
        },
      ]
      target_os = ['android']
                                                                      ソースを含める

12年8月21日火曜日                                                                        15
ソースコードの取得の続き
                                      そのままsyncするとhook
                                       が走って二度手間?


  •$    gclient sync -j8 --nohooks

  •$    . build/android/envsetup.sh

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


12年8月21日火曜日                                               16
ANDROID のビルドに必要な
                    パッケージの取得
  • cd   ~/chromium/src/build

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

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

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

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


12年8月21日火曜日                                     17
スクリプトの修正

  • install-build-deps-android.sh

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

  •#    Install deps

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


12年8月21日火曜日                                                             18
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

12年8月21日火曜日                                                       19
改めてスクリプトの実行

  • 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.


12年8月21日火曜日                                                              20
コンフィグ&ビルド!


  •$    cd ~/chromium/src

  •$    . build/android/envsetup.sh

  •$    android_gyp

  •$    make -j8



12年8月21日火曜日                           21
テスト実行

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


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


     • Running Tests

     • Running   Instrumentation Tests

     • Content   Shell (in development)

12年8月21日火曜日                               22
ビルド後のフォルダ容量



  • 18.9GB




12年8月21日火曜日                 23
これを応用すると...

  • Linux, Mac, Win

  • 32bit, 64bit, ARM

  • Chromium    OS!

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


12年8月21日火曜日                                             24
CHROMIUM OS のビルド




12年8月21日火曜日                  25
CHROMIUM OS のビルド

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

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


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


12年8月21日火曜日                                      26
感想

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


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

     トがあるかも。

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

12年8月21日火曜日                                      27
参考資料

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

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

  • http://dev.chromium.org/developers/how-tos/get-the-code

  • http://dev.chromium.org/developers/how-tos/install-depot-
     tools

12年8月21日火曜日                                                     28

More Related Content

PDF
Jenkins study 7 2013-01-28
PDF
Dockerハンズオン
PDF
Gradle a new Generation Build Tool
PPTX
Dockerハンズオン
PPTX
node-gypを使ったネイティブモジュールの作成
PDF
Docker入門: コンテナ型仮想化技術の仕組みと使い方
PDF
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
PDF
Tizenのご紹介(OSC2012 Tokyo/Fall)
Jenkins study 7 2013-01-28
Dockerハンズオン
Gradle a new Generation Build Tool
Dockerハンズオン
node-gypを使ったネイティブモジュールの作成
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Tizenのご紹介(OSC2012 Tokyo/Fall)

Similar to Chromium androidビルド (20)

PDF
JellyBeanのソースをとりあえず眺めてみた(手抜き)
PDF
バージョンアップに負けないためのプラクティス
PDF
KEONとPEAKが無くてもFirefox OS開発出来る
PDF
Sinatraアプリをherokuにアップ
PDF
Firefox OS カスタム ROM の作成
PDF
Cibc work kokawa
PPT
Android Hacks - Hack40
PDF
Firefox mobile for android internals
PDF
Pf部2011年10月勉強会.1@androidsola
PDF
Android App Development with Gradle & Android Studio
PDF
Firefoxの開発プロセス
PDF
Firefox os hackathon
PDF
NDS31 はじめてChrome App
PDF
Cocos2dx 8hour
PDF
Niigata rb発表資料
PDF
Flameにfirefox os2.1を入れてみた+α
PDF
Firefox OS - Blaze Your Own Path
PDF
Android カスタムROMの作り方
PDF
Falconjsの始め方 (share)
PDF
Unity に於けるモバイルプラットフォーム向けビルド自動化のおはなし
JellyBeanのソースをとりあえず眺めてみた(手抜き)
バージョンアップに負けないためのプラクティス
KEONとPEAKが無くてもFirefox OS開発出来る
Sinatraアプリをherokuにアップ
Firefox OS カスタム ROM の作成
Cibc work kokawa
Android Hacks - Hack40
Firefox mobile for android internals
Pf部2011年10月勉強会.1@androidsola
Android App Development with Gradle & Android Studio
Firefoxの開発プロセス
Firefox os hackathon
NDS31 はじめてChrome App
Cocos2dx 8hour
Niigata rb発表資料
Flameにfirefox os2.1を入れてみた+α
Firefox OS - Blaze Your Own Path
Android カスタムROMの作り方
Falconjsの始め方 (share)
Unity に於けるモバイルプラットフォーム向けビルド自動化のおはなし
Ad

More from Hiroshi Sakate (7)

PDF
GA勉強会#1 幾何学的代数に関する特許とアメリカの特許制度, The patents related to Geometric Algebra and ...
PDF
Introduce Toaster (Toasterのご紹介)
PDF
ディープラーニングを活用したジェスチャー認識
PDF
Introduce Yocto Project Japan and What want to make using Yocto Project
PDF
Introduction to Yocto Project - Let's make customized embedded linux
PDF
TIZEN OS for smartphone Kickstart application development / はじめて学ぶアプリ開発入門
KEY
ここが変わったTizen sdk2.0alpha
GA勉強会#1 幾何学的代数に関する特許とアメリカの特許制度, The patents related to Geometric Algebra and ...
Introduce Toaster (Toasterのご紹介)
ディープラーニングを活用したジェスチャー認識
Introduce Yocto Project Japan and What want to make using Yocto Project
Introduction to Yocto Project - Let's make customized embedded linux
TIZEN OS for smartphone Kickstart application development / はじめて学ぶアプリ開発入門
ここが変わったTizen sdk2.0alpha
Ad

Chromium androidビルド

  • 1. ソースを読む会 Chromium のソースをさわってみる。 ごめんなさい今回はさわるだけです。 2012/08/21 くまだす @kumadasu 12年8月21日火曜日 1
  • 2. 発表までの経緯 • 最初は Android on Pandaboard のカメラ周りのソースを いじるつもりだったけど優先したい事案発生。 • Ubuntu on Pandaboard 向けに新しい Chromium をビルド したい。(まだうまくいっていない) • ソースを読む会とあまりに関係ないので Android 版にち ょっと手を出してみた 12年8月21日火曜日 2
  • 3. CHROMIUM • Chrome のオープンソース版 • デスクトップ版Chromiumは何が違うのかわからない • ARM, Android もビルド方法公開中...? 12年8月21日火曜日 3
  • 4. ANDROID 版 CHROMIUM? ビルド環境 • Ubuntu12.04 少し新しすぎるかもでも可能 • 64bit 多分必須 • メモリ4GB、スワップ8GB 推奨 • Virtualboxの上でもできた 12年8月21日火曜日 4
  • 5. BUILD INSTRUCTION • http://code.google.com/p/chromium/wiki/ AndroidBuildInstructions • ここにすべてが書いてある • リンクで結構飛ばされるけどね • ふんふん言いながら進めているとビルド中に衝撃の事 実発覚 12年8月21日火曜日 5
  • 7. !!! 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. 12年8月21日火曜日 7
  • 8. AFTER • 今のところフルコンパイルしてもブラウザにならない よ。ユニットテスト単位だよ。Chromiumのコードがも っと公開されたらターゲット増えていくよ。 12年8月21日火曜日 8
  • 9. 目標 • Android 版 Chromium のソースコードが公開されたらい ち早くビルドできるようになる。 12年8月21日火曜日 9
  • 10. ビルドの流れ • 開発に必要なツールの取得 • Chromium のソースコードの取得 • Android のビルドに必要なパッケージの取得 • ビルド 12年8月21日火曜日 10
  • 11. 必要なツールの取得(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 12年8月21日火曜日 11
  • 12. 必要なツールの取得(2) • depot_tools の取得 •$ git clone https://git.chromium.org/chromium/tools/ depot_tools.git • パスの設定(必要なら ~/.bashrcへ) •$ export PATH="$PATH":`pwd`/depot_tools 12年8月21日火曜日 12
  • 13. DEPOT_TOOLS の中身 • Google謹製の便利ツール集?(お馴染みrepoも含む) • gclient : git, svn のすごいやつ?コード取得後に後処理 のスクリプトが勝手に走っているような気もする。 • gyp : configure のすごいやつ。 • ninja : make のすごいやつ。(わからないので未使用) 12年8月21日火曜日 13
  • 14. ソースコードの取得 •$ cd ~/chromium •$ gclient config https://src.chromium.org/chrome/trunk/src • $ svn ls https://src.chromium.org/chrome • 編集→~/chromium/.gclient • シンク(後述) 12年8月21日火曜日 14
  • 15. .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", Android関係の }, ] target_os = ['android'] ソースを含める 12年8月21日火曜日 15
  • 16. ソースコードの取得の続き そのままsyncするとhook が走って二度手間? •$ gclient sync -j8 --nohooks •$ . build/android/envsetup.sh •$ gclient runhooks ここの . と build の間 のスペース超重要 12年8月21日火曜日 16
  • 17. ANDROID のビルドに必要な パッケージの取得 • cd ~/chromium/src/build • sudo ./install-build-deps-android.sh • これが ant1.8 が見つからないといって止まる。 • java のパッケージも見つからない • これらを越えてもなんかエラーがでる。 12年8月21日火曜日 17
  • 18. スクリプトの修正 • install-build-deps-android.sh • Ubuntu12.04 では ant1.8 が標準になり名前が ant になっ てる。 •# Install deps • sudo apt-get -y install python-pexpect ant1.8 xvfb x11-utils 12年8月21日火曜日 18
  • 19. 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 12年8月21日火曜日 19
  • 20. 改めてスクリプトの実行 • 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. 12年8月21日火曜日 20
  • 21. コンフィグ&ビルド! •$ cd ~/chromium/src •$ . build/android/envsetup.sh •$ android_gyp •$ make -j8 12年8月21日火曜日 21
  • 22. テスト実行 • いずれもpythonスクリプトで実行 • 実機およびエミュレータでテスト可能 らしい • Running Tests • Running Instrumentation Tests • Content Shell (in development) 12年8月21日火曜日 22
  • 23. ビルド後のフォルダ容量 • 18.9GB 12年8月21日火曜日 23
  • 24. これを応用すると... • Linux, Mac, Win • 32bit, 64bit, ARM • Chromium OS! • http://dev.chromium.org/chromium-os/developer- guide#TOC-Decide-where-your-source-will-live 12年8月21日火曜日 24
  • 26. CHROMIUM OS のビルド • Ubuntu 上で chroot 使って Gentoo? っぽい環境を作って 開発。 • 手順が結構複雑ですが興味があればぜひ • 私は Pandaboard のオプション使ってやってみたけど、 ビルドイメージがうまく動かなかった。 12年8月21日火曜日 26
  • 27. 感想 • 公式ページの情報が一部古い • なんかおかしいと思ったら最下部のコメント欄にヒン トがあるかも。 • Pandaboard な Linux 向け Chromium のビルドはまだうま く行っていない。ビルドはできているけど実行時の no such file or directory に悩まされてる。 12年8月21日火曜日 27
  • 28. 参考資料 • http://code.google.com/p/chromium/wiki/ AndroidBuildInstructions • http://code.google.com/p/chromium/wiki/ LinuxBuildInstructions • http://dev.chromium.org/developers/how-tos/get-the-code • http://dev.chromium.org/developers/how-tos/install-depot- tools 12年8月21日火曜日 28