Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
札束でGradleのケツを叩く
Search
Ryo Sakaguchi
November 09, 2016
Programming
1
1.4k
札束でGradleのケツを叩く
Android app build speed can be made faster with $$$.
Ryo Sakaguchi
November 09, 2016
Tweet
Share
More Decks by Ryo Sakaguchi
See All by Ryo Sakaguchi
Android Architecture Componentsを使って、改善・効率化するAndroidアプリ開発
wakwak3125
0
1.2k
Test multiple APKs with Robolectric
wakwak3125
0
740
Clip, Elevation and ViewOutlineProvider
wakwak3125
1
1.2k
WebView as Fancy and effective View
wakwak3125
1
1.5k
ViewPager2をちょっとさわってみよう
wakwak3125
0
1.6k
年末だし、振り返るKotlin
wakwak3125
1
1k
社内ライブラリのアップデートフロー
wakwak3125
4
3.7k
Wantedly Peopleのリリースフロー
wakwak3125
1
4.5k
KOINかわいいよ、KOIN
wakwak3125
0
910
Other Decks in Programming
See All in Programming
Cline指示通りに動かない? AI小説エージェントで学ぶ指示書の書き方と自動アップデートの仕組み
kamomeashizawa
1
590
Create a website using Spatial Web
akkeylab
0
310
ASP.NETアプリケーションのモダナイズ インフラ編
tomokusaba
1
420
来たるべき 8.0 に備えて React 19 新機能と React Router 固有機能の取捨選択とすり合わせを考える
oukayuka
2
870
AWS CDKの推しポイント 〜CloudFormationと比較してみた〜
akihisaikeda
3
320
型付きアクターモデルがもたらす分散シミュレーションの未来
piyo7
0
810
ニーリーにおけるプロダクトエンジニア
nealle
0
640
ソフトウェア品質を数字で捉える技術。事業成長を支えるシステム品質の マネジメント
takuya542
0
130
関数型まつりレポート for JuliaTokai #22
antimon2
0
160
#QiitaBash MCPのセキュリティ
ryosukedtomita
0
250
GraphRAGの仕組みまるわかり
tosuri13
8
500
PicoRuby on Rails
makicamel
2
110
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1370
200k
Side Projects
sachag
455
42k
Documentation Writing (for coders)
carmenintech
72
4.9k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Bash Introduction
62gerente
614
210k
A better future with KSS
kneath
239
17k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
940
How to Think Like a Performance Engineer
csswizardry
24
1.7k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
710
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
670
A Tale of Four Properties
chriscoyier
160
23k
Balancing Empowerment & Direction
lara
1
380
Transcript
ࡳଋͰGradleͷ έπΛୟ͍ͯΈͨ 2016/11/09 ୈ1ճελʔτΞοϓAndroidษڧձ @wakwak3125 from Lang-8, Inc
Ԛ͍λΠτϧͰ͢Έ·ͤΜ
About me. • ࡔޱ ྒ(͔͙ͪ͞Γΐ͏) • Ո۩ -> SIer ->
AndroidΞϓϦΤϯδχΞ • Θ͘Θ͘͞ΜͬͯݺΕͯ·͢ • ܲͱϏʔϧ͕͖Ͱ͢ • ࠓͷओ࠵ऀΛ͍͍͓ͤͯͨͩͯ͞Γ·͢
HiNative? • ޠֶ/จԽͷQ&AαʔϏε • ࣭͢ΔͱͦͷݴޠͷωΠςΟϰε ϐʔΧʔ͕͑ͯ͘Ε·͢ɻ • ͪΖΜແྉͰ͢
Example • ޠ͕ӳޠͰຊޠΛษڧ͍ͯ͠Δ Ϣʔβʔͷํ͕ɺʮ͜ͷຊޠͰࣗ વ͔ͳʁʯͱ͍͏༷ͳײ͡Ͱ࣭͠ ͍ͯ·͢ɻ • ͜ΕථܗࣜͰճ͕Ͱ͖ΔͷͰ ൃԻνΣοΫͳͲʹศརͰ͢ɻ
Ͱຊ…
AndroidϏϧυ͕͍ͱݴΘΕ·͢ΑͶ
࠷ۙiOS͔ΒAndroidʹҠͬͨ ࢲͷ༑ਓࣄ͋Δ͝ͱʹ
ʮͬͱૣ͘Ͱ͖Μͷʁʯ
ͱɺฉ͍ͯ͘Δ࢝Ͱ͢ɻ
ͱ͍͏ࣄͰɺϏϧυ࣌ؒΛߴԽ͢Δ Α͋͘ΔྫΛ·ͱΊͯΈ·ͨ͠ɻ
͔͜͜Βࢲͷݸਓͷڥͷ͓Ͱ͢ ྃ͝ঝ͍ͩ͘͞
Offline workʹ͢Δ
gradle.propertiesΛฤू͢Δ • org.gradle.daemon=true • σʔϞϯϓϩηεΛ͍·͢ • org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
• JVMͷҾʹϝϞϦΛͲΕ͘Β͍·ͰׂΓͯΔ͔Λ͜͜Ͱࢦఆ͢Δ • org.gradle.parallell=true • ฒྻϞʔυΛ༗ޮԽ • org.gradle.configureondemand=true • େ͖ͳϓϩδΣΫτͳͲͰ༗ޮͳ༷Ͱ͢ɻ gradle.properties 1/3
KotlinͷํՃͰ… • kotlin.incremantal=true • KotlinͰIncrementalϏϧυ͕༗ޮʹͳΓ·͢ɻ gradle.properties 2/3
AndroidStudio2.2Ͱ • android.enableBuildCache=true • ϏϧυΩϟογϡ͕༗ޮԽ͞ΕΔ༷Ͱ͢ɻ • ͦ͜·ͰͷޮՌͳ͍༷Ͱ͕͢ɺΕΔ͜ͱ͍ͬͯ ͖·͠ΐ͏తͳײ͡Ͱ͢ɻ gradle.properties 3/3
build.gradleΛฤू͢Δ android { … dexOptions { javaMaxHeapSize “2g” preDexLibraries true
} productFlavors { lollipop { // multidexڥͰ͔ͳΓૣ͘ͳΓ·͢ɻ minSdkVersion 21 } } }
ͱɺΑ͋͘ΔͭΛ· ͱΊͯΈ·ͨ͠ɻ
ͰϏϧυͯ͠Έ·͠ΐ͏ɻ
ϓϩδΣΫτ͜Μͳײ͡Ͱ͢ • Gradle 3.1 • Android Studio 2.2 • Kotlin1.0.4
Ϛγϯͪ͜Β • MacBook Pro 13 Early 2015 • Core i5
• RAM 8GB • SSD 256GB
લड़ͷઃఆΛԿ͠ͳ͍ ߹ͷ݁Ռͪ͜Β 1. 4 mins 32.036 secs 2. 3 mins
3.593 secs 3. 3 mins 13.68 secs 4. 2 mins 59.793 secs 5. 2 mins 49.458 secs
݁Ռͪ͜Β 1. 3 mins 39.298 secs 2. 1 mins 36.881
secs 3. 1 mins 33.334 secs 4. 1 mins 38.63 secs 5. 1 mins 36.758 secs
ૣ͘ɺɺɺͳΓ·ͨ͠Ͷʁ
͋͘·Ͱ૬ରతʹૣ͘ͳͬͨ ͷͰ͋Γɺීஈ͔Β͜Εͬ ͺΓগ͠ਏ͍Ͱ͢Ͷʁ
ಥવͰ͕͢͜͜Ͱฐࣾͷ ٻਓใΛݟͯΈ·͠ΐ͏
ڧͦ͏ͳ֎ࠃਓͷํ͕͍ࣸͬͯ·͢Ͷɻ ͏গ͠ݟͯΈ·͠ΐ͏ɻ
࡞ۀޮͷ্͕ΔͷʹͰ͖Δ͚ͩࢿ Λߦͳ͍ͬͯΔΑ͏Ͱ͢Ͷɻ
ͱ͍͏͜ͱͰ
͜ΜͳϚγϯΛ༻ҙͯ͠Β͍·ͨ͠ɻ ձࣾෛ୲࠷ߴο • iMac 5K Late2015 • Core i7(4GHz) •
RAM 64GB • SSD 512GB
build.gradleΛฤू͢Δ android { … dexOptions { javaMaxHeapSize “32g” preDexLibraries true
} productFlavors { lollipop { // multidexڥͰ͔ͳΓૣ͘ͳΓ·͢ɻ minSdkVersion 21 } } }
લड़ͷઃఆΛԿ͠ͳ͍ ߹ͷ݁Ռͪ͜Β 1. 1 mins 7.58 secs 2. 2 mins
51.058 secs 3. 1 mins 19.977 secs 4. 1 mins 5.356 secs 5. 37.249 secs
݁Ռͪ͜Β 1. 1 mins 10.933 secs 2. 20.561 secs 3.
19.172 secs 4. 20.31 secs 5. 18.745 secs
ૣ͘ͳΓ·ͨ͠Ͷʁ
݁ -> Ϗϧυ͓ۚͰૣ͘Ͱ͖Δ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ