Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Androidの新ビルドシステム

15,604 views

Published on

今後採用されそうなAndroidの新ビルドシステム、katiとsoongについて

Published in: Technology
  • Follow the link, new dating source: ♥♥♥ http://bit.ly/39pMlLF ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating for everyone is here: ♥♥♥ http://bit.ly/39pMlLF ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Download or read that Ebooks here ... ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • (Unlimited)....ACCESS WEBSITE Over for All Ebooks ................ accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full PDF EBOOK here { https://urlzs.com/UABbn }
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Download or read that Ebooks here ... ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Androidの新ビルドシステム

  1. 1. Android の新ビルドシステム 横浜 Android and モバイル OS プラットフォーム部 第 39 回勉強会 2015/9/19 @l_b__
  2. 2. 今日の内容 ● AOSP を眺めていると、すでに master ブランチで 採用されているビルドシステムと、現在開発中 のシステムがあるのでその辺りを。 ● AOSP を眺めただけの妄想ベースなので、内容 の保証は ( 参照先のリンク以外は ) ちょっと…
  3. 3. 自己紹介 ● Twitter ID:@l_b__ ● PF 部の司会進行役 兼 懇親会手配役 兼 配信 係 兼 雑用係 ● フレームワーク周りが好物です ● BeOS 好きだったのと Java-er なので Be 関係者 が多い ( 多かった )Android に惹かれました ● 仕事は某 SIer で Android フレームワーク修正か らアプリ作成までやっていましたが最近は Android 全く触っていません
  4. 4. 今日のサマリ ● https://github.com/google/kati と https://android.googlesource.com/platf orm/build/soong/+/master-soong/doc.go を読め 以上
  5. 5. ではありますが一応解説を ● 現状 master ブランチには kati と呼ばれるビルド ツールが導入されています ● また soong というビルドシステムも開発が進んで いるようです
  6. 6. kati ● kati is an experimental GNU make clone. The main goal of this tool is to speed-up incremental build of Android. – https://github.com/google/kati/blob/mas ter/README.md ● インクリメンタルビルドの高速化を目標とした make の代替ツール
  7. 7. kati ● Currently, kati does not offer a faster build by itself. It instead converts your Makefile to a ninja file. ● 今はまだ Makefile を ninja 向けに変換するだけ だよ kati
  8. 8. ninja ● http://martine.github.io/ninja/ ● ファイル間の依存関係を高速に解決することでビ ルドの高速化を目指しているビルドシステム ● chromium ですでに make の代わりに採用済み
  9. 9. ninja とは ● “ninja は chromium ブラウザの開発者が現行 のビルドシステムに嫌気をさして作り始めたビ ルドシステムです。これまでちょっとしたファイル の変更であってもビルド開始までに 10 秒掛 かっていたのが 1 秒以下になるとの事で す。 ninja のウリは高速であり、ゴールも高 速。 configure の様な依存から解決するので はなく、現行のファイル構成からソースレベルの 依存情報を解決します。” – 「 Big Sky :: 高速なビルドシステム 「 ninja 」」 http://mattn.kaoriya.net/softwar e/ninja/20140121141906.htm
  10. 10. ninja とは ● すでにメタビルドシステムの gyp 、 CMake は ninja に対応済み – Makefile の代わりに build.ninja を出力 ● LLVM や node.js といったプロジェクトが採用 ● Android(master ブランチ ) で は /prebuilts/ninja にビルド済みバイナリ有り
  11. 11. kati に戻って ● Android(master ブランチ ) では /build/kati ● Go で書かれた kati と C++ で書かれた ckati が 含まれている – 現状は ckati がメインで使われているっぽい
  12. 12. kati を使ったビルド ● $ export USE_NINJA=true ● $ source build/envsetup.sh ● $ lunch hogehoge ● $ make kati を使ったビルド
  13. 13. kati を使ったビルド ● out/target/product/[ デバイス 名 ]/build.ninja が kati によって作成される ● 後は ninja がよしなに計らってくれる ● コンパイル、リンクは gcc/llvm clang が行うの で、初回ビルドが特別に速いということは無さそ う ● ビルド進捗が表示されるのは分かりやすい
  14. 14. kati についてその他 ● Google 内では export USE_GOMA=true する ことで社内クラウドコンパイル環境である goma を使った分散ビルドが出来るよう。 ● kati のメイン開発者は日本人 2 人の模様 – http://shinh.hatenablog.com/ – http://ukai.jp/ ● kati の意味は不明…
  15. 15. kati について追記 ● 9/24 追記 ● 開発者の浜地さんが kati の解説エントリを書い てくださいました ! – 兼雑記 「 kati について」 http://shinh.hatenablog.com/entry/201 5/09/24/005803 ●
  16. 16. kati について追記 ● 名前の由来は make ( まけ ) に対する kati とい うダジャレだったようです… ●
  17. 17. もうひとつのビルドツール ● こちらは鋭意開発中のようですが…
  18. 18. soong ● master-soong ブランチに初出、現在は master にも一部マージ済み ● /build/soong 配下の Go で書かれたツール ● ninja 、 blueprint と合わせてビルドを実行
  19. 19. soong? ● スタートレックに出てくるアンドロイドであるデータ 少佐の生みの親、ヌニエン・スン博士 (Dr. Noonien Soong) が命名の由来 ? – Android をビルドするシステムだからアンドロイド を作った人物の名前なのかな – トレッキーでは無いのでよく分かりません
  20. 20. blueprint ● blueprint はビルド定義ファイル Android.bp を 読み込んで build.ninja を作るメタビルドツー ル ● /build/blueprint ● Android.bp は Android.mk の代わりになる Python データライクなフォーマットファイル
  21. 21. Android.bp cc_library( name = "cmd", srcs = [ "main.c", ], deps = [ "libc", ], ) subdirs = ["subdir1", "subdir2"]
  22. 22. soong ● soong 自体はどのモジュールをどのようにビルド するかコントロールする役目の模様。 ● Android.mk を Android.bp に変換するツールを 含む模様 ● どのデバイス向けか、そのデバイスにどのモ ジュールをインストールするか、対象アーキテク チャは何かなどコントロール ● しかし lunch コマンドに該当する処理 や、 AndroidProducts.mk 、 device.mk など に該当するのが何かは不明
  23. 23. ビルド ● $ ./bootstrap.bash ● $ ./soong ● でビルドできるのではないか ( 手順説明は見当た らない ) ● ただし、 master-soong ブランチも soong コマン ドですぐにエラー終了する。 ● Bootstrap.bash は本 体 /build/soong/bootstrap.bash へのシン ボリックリンク ● soong は本体 /build/soong/soong.bash への シンボリックリンク
  24. 24. ビルド ● 初期処理として .bootstrap 配下に blueprint 、 soong がビルドされる ● それらを使って各モジュールが .intermediates 配下にビルドされる ( はず )
  25. 25. 最後のまとめ ● 中の人たちも開発中のビルド時間には辟易して いるようです。 ● Chrome との開発統合がこんな形で現れていま す。 ● Android の Go への浸透はまず周辺ホストツー ルから。デバイス中に入ってくるのはいつでしょ う。 ● AndroidBuilder も Go 覚えないとね
  26. 26. 以上 ● 次回以降は Android Marshmallow で何か。 以上

×