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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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.3k
Test multiple APKs with Robolectric
wakwak3125
0
790
Clip, Elevation and ViewOutlineProvider
wakwak3125
1
1.3k
WebView as Fancy and effective View
wakwak3125
1
1.6k
ViewPager2をちょっとさわってみよう
wakwak3125
0
1.6k
年末だし、振り返るKotlin
wakwak3125
1
1.1k
社内ライブラリのアップデートフロー
wakwak3125
4
3.8k
Wantedly Peopleのリリースフロー
wakwak3125
1
4.7k
KOINかわいいよ、KOIN
wakwak3125
0
970
Other Decks in Programming
See All in Programming
要求定義・仕様記述・設計・検証の手引き - 理論から学ぶ明確で統一された成果物定義
orgachem
PRO
1
250
AI時代の認知負荷との向き合い方
optfit
0
170
高速開発のためのコード整理術
sutetotanuki
1
410
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
4k
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.3k
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
230
Gemini for developers
meteatamel
0
100
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
750
Raku Raku Notion 20260128
hareyakayuruyaka
0
370
日本だけで解禁されているアプリ起動の方法
ryunakayama
0
280
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
160
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
760
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.2k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Documentation Writing (for coders)
carmenintech
77
5.3k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
400
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
250
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
ૣ͘ͳΓ·ͨ͠Ͷʁ
݁ -> Ϗϧυ͓ۚͰૣ͘Ͱ͖Δ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ