Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
ichigotake .
2,561 views
[Android] モジュール管理で ビルド高速化!
モジュールの管理方法の工夫でAnroidのビルド時間を数十秒から10-20秒くらいへ減らす
Technology
◦
Read more
4
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 24
2
/ 24
3
/ 24
4
/ 24
5
/ 24
6
/ 24
7
/ 24
8
/ 24
9
/ 24
10
/ 24
11
/ 24
12
/ 24
13
/ 24
14
/ 24
15
/ 24
16
/ 24
17
/ 24
18
/ 24
19
/ 24
20
/ 24
21
/ 24
22
/ 24
23
/ 24
24
/ 24
More Related Content
PPTX
Google Codelabsをやってみた
by
furusin
PDF
Wantedly - 世界一"いいね!"される 求人サイトの作り方
by
Yoshinori Kawasaki
PDF
Jenkinsを用いたAndroidアプリビルド作業効率化
by
Kenichi Kambara
PDF
JUnit5とAndroidのテスト
by
Hiroshi Kikuchi
PPTX
Wantedlyのテスト事情
by
Takao Sumitomo
PDF
UnitTest
by
Yuki Matsumura
PDF
Dependency injection
by
Yuki Matsumura
PDF
Hello. Continuous Integration
by
Yuki Matsumura
Google Codelabsをやってみた
by
furusin
Wantedly - 世界一"いいね!"される 求人サイトの作り方
by
Yoshinori Kawasaki
Jenkinsを用いたAndroidアプリビルド作業効率化
by
Kenichi Kambara
JUnit5とAndroidのテスト
by
Hiroshi Kikuchi
Wantedlyのテスト事情
by
Takao Sumitomo
UnitTest
by
Yuki Matsumura
Dependency injection
by
Yuki Matsumura
Hello. Continuous Integration
by
Yuki Matsumura
What's hot
PPTX
Device Farm を使ったスマホアプリの自動テスト
by
Kenichi Tatsuhama
PPTX
エンジニアがプロダクト育成を始めるまでにやったこと
by
Takao Sumitomo
PDF
兄弟アプリのロジック共通化とビルド高速化の実験
by
ichigotake .
PPTX
Visual Studio App CenterでGitHubのPull Requestを効率よく対応しよう
by
Shinya Nakajima
PPTX
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
by
Kohei Saito
PDF
Go言語によるWebアプリケーション開発
by
エンジニア勉強会 エスキュービズム
PDF
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
by
Kenichi Tatsuhama
PDF
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
by
Yu Nobuoka
PDF
Android Lintを覚えてベテラン開発者に追いつこう #ndsmeetup
by
Yukiya Nakagawa
PDF
あるゲームアプリケーションの構成とアップデートサイクル
by
Kentaro Iizuka
PDF
僕がAndroid開発する時にちょっと便利だと思うtips
by
Masataka Kono
PDF
DevLOVE広島 第1回 その改善いつするの?
by
Kazuya Matsubara
KEY
Androidリリース作業の効率化(2)
by
Kenichi Kambara
PDF
Android StudioではじめるAndroidアプリケーション実践入門 先生:日高 正博
by
schoowebcampus
PDF
Gradle PluginとTwitterとズン ドコ キ・ヨ・シ!
by
Shinobu Okano
ODP
Jenkins導入ライブ
by
Hiasyoshi Suehiro
PDF
DroidKaigiアプリをSpoonで全画面スクショするぞい\(^o^)/
by
Shinobu Okano
PDF
SEゼミ2015 - OSS Hack Weekend - 1日目のまとめ
by
Kouhei Sutou
PDF
AndroidJUnitRunner で JUnit 4 形式のテストに移行
by
Yu Nobuoka
PDF
Screenshots Test spoon + espresso
by
Shinobu Okano
Device Farm を使ったスマホアプリの自動テスト
by
Kenichi Tatsuhama
エンジニアがプロダクト育成を始めるまでにやったこと
by
Takao Sumitomo
兄弟アプリのロジック共通化とビルド高速化の実験
by
ichigotake .
Visual Studio App CenterでGitHubのPull Requestを効率よく対応しよう
by
Shinya Nakajima
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
by
Kohei Saito
Go言語によるWebアプリケーション開発
by
エンジニア勉強会 エスキュービズム
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
by
Kenichi Tatsuhama
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
by
Yu Nobuoka
Android Lintを覚えてベテラン開発者に追いつこう #ndsmeetup
by
Yukiya Nakagawa
あるゲームアプリケーションの構成とアップデートサイクル
by
Kentaro Iizuka
僕がAndroid開発する時にちょっと便利だと思うtips
by
Masataka Kono
DevLOVE広島 第1回 その改善いつするの?
by
Kazuya Matsubara
Androidリリース作業の効率化(2)
by
Kenichi Kambara
Android StudioではじめるAndroidアプリケーション実践入門 先生:日高 正博
by
schoowebcampus
Gradle PluginとTwitterとズン ドコ キ・ヨ・シ!
by
Shinobu Okano
Jenkins導入ライブ
by
Hiasyoshi Suehiro
DroidKaigiアプリをSpoonで全画面スクショするぞい\(^o^)/
by
Shinobu Okano
SEゼミ2015 - OSS Hack Weekend - 1日目のまとめ
by
Kouhei Sutou
AndroidJUnitRunner で JUnit 4 形式のテストに移行
by
Yu Nobuoka
Screenshots Test spoon + espresso
by
Shinobu Okano
Viewers also liked
PDF
Android組み込み開発テキスト pandaboard es編
by
OESF Education
PPTX
Distributed Compiler Icecc
by
SZ Lin
PDF
磯野ー!関数型言語やろうぜー!
by
Ra Zon
PDF
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
by
Yusuke HIDESHIMA
PDF
Scala@SmartNews AdFrontend を Scala で書いた話
by
Keiji Muraishi
PDF
AndroidでScalaを使う際の問題点と対策
by
Mogi Isamu
PDF
ScalaプログラマのためのHaskell入門
by
Yasuaki Takebe
PDF
Androidアプリ開発で活躍必至!? ビルドツールGradle
by
amayaw9
PDF
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
by
Mogi Isamu
PDF
Webプログラマのための Scala 入門勉強会 @ 渋谷 12/7
by
Hitoshi Asai
PDF
2016 Android × Scala @ScalaMatsuri2016
by
Yasuyuki Sugitani
PDF
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
by
Kazuhiro Sera
PDF
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
by
Kazuhiro Sera
PDF
ScalaでAndroidアプリ開発
by
papamitra
PDF
Scala@SmartNews_20150221
by
Shigekazu Takei
PPTX
Scala初心者がPlay/ScalaでロックなWebアプリを作ったお話
by
omi end
PDF
言語アップデート -Scala編-
by
Kota Mizushima
PDF
15分でざっくり分かるScala入門
by
SatoYu1ro
PPTX
Scalaで学ぶ関数型言語超入門
by
yujiro_t
PPTX
Scala勉強会 初心者向けハンズオン前編
by
takeuchi-tk
Android組み込み開発テキスト pandaboard es編
by
OESF Education
Distributed Compiler Icecc
by
SZ Lin
磯野ー!関数型言語やろうぜー!
by
Ra Zon
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
by
Yusuke HIDESHIMA
Scala@SmartNews AdFrontend を Scala で書いた話
by
Keiji Muraishi
AndroidでScalaを使う際の問題点と対策
by
Mogi Isamu
ScalaプログラマのためのHaskell入門
by
Yasuaki Takebe
Androidアプリ開発で活躍必至!? ビルドツールGradle
by
amayaw9
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
by
Mogi Isamu
Webプログラマのための Scala 入門勉強会 @ 渋谷 12/7
by
Hitoshi Asai
2016 Android × Scala @ScalaMatsuri2016
by
Yasuyuki Sugitani
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
by
Kazuhiro Sera
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
by
Kazuhiro Sera
ScalaでAndroidアプリ開発
by
papamitra
Scala@SmartNews_20150221
by
Shigekazu Takei
Scala初心者がPlay/ScalaでロックなWebアプリを作ったお話
by
omi end
言語アップデート -Scala編-
by
Kota Mizushima
15分でざっくり分かるScala入門
by
SatoYu1ro
Scalaで学ぶ関数型言語超入門
by
yujiro_t
Scala勉強会 初心者向けハンズオン前編
by
takeuchi-tk
More from ichigotake .
PDF
Potatotips 5 bakusoku_compile
by
ichigotake .
PDF
android_on_groovy
by
ichigotake .
PDF
[Android]趣味プログラマーな非エンジニアにアプリ開発を教える
by
ichigotake .
PDF
近況報告と最近のAndroidニュース
by
ichigotake .
PDF
[Android] CI環境についてぼんやり考えてること
by
ichigotake .
PDF
[Android]Fragmentとのつきあい方を考える
by
ichigotake .
PDF
2013 09-28-yoshinani
by
ichigotake .
KEY
Hachiojipm #23
by
ichigotake .
Potatotips 5 bakusoku_compile
by
ichigotake .
android_on_groovy
by
ichigotake .
[Android]趣味プログラマーな非エンジニアにアプリ開発を教える
by
ichigotake .
近況報告と最近のAndroidニュース
by
ichigotake .
[Android] CI環境についてぼんやり考えてること
by
ichigotake .
[Android]Fragmentとのつきあい方を考える
by
ichigotake .
2013 09-28-yoshinani
by
ichigotake .
Hachiojipm #23
by
ichigotake .
Recently uploaded
PDF
20260119_VIoTLT_vol22_kitazaki_v1___.pdf
by
Ayachika Kitazaki
PDF
TomokaEdakawa_職種と講義の関係推定に基づく履修支援システムの基礎検討_HCI2026
by
Matsushita Laboratory
PDF
自転車ユーザ参加型路面画像センシングによる点字ブロック検出における性能向上方法の模索 (20260123 SeMI研)
by
Yuto Matsuda
PDF
maisugimoto_曖昧さを含む仕様書の改善を目的としたアノテーション支援ツールの検討_HCI2025.pdf
by
Matsushita Laboratory
PDF
ST2024_PM1_2_Case_study_of_local_newspaper_company.pdf
by
akipii ogaoga
PDF
Team Topology Adaptive Organizational Design for Rapid Delivery of Valuable S...
by
akipii ogaoga
20260119_VIoTLT_vol22_kitazaki_v1___.pdf
by
Ayachika Kitazaki
TomokaEdakawa_職種と講義の関係推定に基づく履修支援システムの基礎検討_HCI2026
by
Matsushita Laboratory
自転車ユーザ参加型路面画像センシングによる点字ブロック検出における性能向上方法の模索 (20260123 SeMI研)
by
Yuto Matsuda
maisugimoto_曖昧さを含む仕様書の改善を目的としたアノテーション支援ツールの検討_HCI2025.pdf
by
Matsushita Laboratory
ST2024_PM1_2_Case_study_of_local_newspaper_company.pdf
by
akipii ogaoga
Team Topology Adaptive Organizational Design for Rapid Delivery of Valuable S...
by
akipii ogaoga
[Android] モジュール管理で ビルド高速化!
1.
[Android] モジュール管理で ビルド高速化! ! @ichigotake ! #potatotips 5
2.
Profile • name: @ichigotake •
hoby: 2013年夏頃からAndroidアプリ開発 ! • work: スタディプラス株式会社
3.
注意事項 • この実験は全て構想段階もしくは模索中のもの • まだまだ検証不足(
先週から開始 • gradle-android-plugin の仕様・バグを掴んでい ないとハマるリスクがとても高い • 検証の経過報告と思ってください
4.
Androidアプリ開発の悩み ! • 巨大ではなくてもビルド時間がかる • すぐに30秒越え •
つらい • ツラい・つらい……
5.
検証のきっかけ • ビルド時間を短くしたい!!!! • LogCatの追記で1分も待たされる… •
ProductFlavors の模索時に気付きを得る • ???「ライブラリのコンパイル速いよね」
6.
試しにアプリケーションプロジェクトを ライブラリ化してみよう!!!!
7.
まずは結果から assembleDebugの実行時間 0秒 15秒 30秒 45秒 60秒 大きいアプリ (12,000行 リソース/依存多) そこそこのアプリ (7,000行) 小さいアプリ (3,000行) 8秒10秒12秒 30秒 40秒 60秒 Before After
8.
前提条件 • gradle-android-plugin 0.8.3
( + AS 0.4.6 • assembleBuild を通す事のみを確認 (アプリは起動しない • 試行ケース・回数は少なめ • 実験結果はあくまで理論値
9.
検証した事 1. 既存アプリを丸ごとライブラリ化 - apply
plugin: android' +apply plugin: android-library' ! 2. mavenLocal化 ! $ ./gradlew :App:uploadArchives # /repository へ 3. 新アプリモジュール内はAndroidManifestのみ
10.
言いたい事は1つ
11.
構成イメージ /ProjectRoot /App # dependencies
{ compile ${stock} } /Stock # アプリのソース/リソースを詰めたライブラリ /repository # /Stock のアップロード先 mavenLocal() で /repository を追加しておく
12.
何がダメだったのか アプリケーションプロジェクトでは… • 毎回 mergeResource,
preDexCompile を実行 • この2つが一番のボトルネック • ライブラリは clean しない限り1回だけ実行?
13.
効能 コードをいじるためのコストが少し増える • レガシー資産を凍結する仕組みとして • 処理の共通化・汎用化への意識向上 •
注) デメリットと表裏一体
14.
考慮すべき事 その1 • Activityはライブラリ化しない •
いわゆるコントローラを楽に編集出来ると小回り 利く • 密結合度が高いならI/Fの抽出などしてみる • 自身のモジュール内に置かないとダメなモノもある • AndroidManifestで参照する R.* など
15.
考慮すべき事 その2 既存コードの修正が必要な場合も • ライブラリでは
R.* が定数でなくなる • R.* はアノテーションの引数・case文に使えない • IDEで switch文をif-else に変換しよう
16.
考慮すべき事 その3 • 毎回実行されるタスクのコストを下げる •
アプリモジュールにモノを置かない工夫 • モジュール の include を増やさない • 依存でcompile projectを使わない工夫
17.
考慮すべき事 その4 1. いちいちuploadArchivesやるのはめんどう! 2.
作業中だけ作業用モジュールで 3. fixしたらライブラリモジュールへ など、運用の一例として。
18.
考慮すべき事 そのn 細かい注意点はまだまだ他にも…!! (5分でまとめるには多すぎる…)
19.
考慮すべき事 まとめ • アプリモジュールは「今作業してるもの」のみに すると速くなる •
用意,運用の手間とビルド時間短縮の費用対効果 • スムーズに移行出来るか,運用で混乱させないか
20.
実験対象の実測値は? • でかいものは依存が複雑で難しい • 各種罠と複雑な運用を避けると… 60秒
-> 2,30秒 くらいにはなりそう(未検証/予測値
21.
そもそも… コード量を減らす,汎用処理はライブラリ化などを 実践していればこの実験も工夫もいらないはず…
22.
新規or小さい規模なら… • モジュール内に置かないスタイルへの移行はそこ まで苦にならないはず • あわよくば独自汎用ライブラリも充実…するか も
23.
• 後日 検証結果をまとめて公開します •
おおよそ罠と回避策は見つかった
24.
Best, :)
Download