Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
札束でGradleのケツを叩く
Search
Ryo Sakaguchi
November 09, 2016
Programming
1.4k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
札束でGradleのケツを叩く
Android app build speed can be made faster with $$$.
Ryo Sakaguchi
November 09, 2016
More Decks by Ryo Sakaguchi
See All by Ryo Sakaguchi
なんとなくgRPC-Java を使ってるそこの俺、gRPC-Kotlin に移行したらどうだ?
wakwak3125
0
25
Android Architecture Componentsを使って、改善・効率化するAndroidアプリ開発
wakwak3125
0
1.3k
Test multiple APKs with Robolectric
wakwak3125
0
840
Clip, Elevation and ViewOutlineProvider
wakwak3125
1
1.4k
WebView as Fancy and effective View
wakwak3125
1
1.7k
ViewPager2をちょっとさわってみよう
wakwak3125
0
1.7k
年末だし、振り返るKotlin
wakwak3125
1
1.2k
社内ライブラリのアップデートフロー
wakwak3125
4
3.9k
Wantedly Peopleのリリースフロー
wakwak3125
1
4.9k
Other Decks in Programming
See All in Programming
技術的負債の返済は、AI時代の複利で効く投資 — 経営としての意思決定とその遂行
curekoshimizu
0
1.4k
TiDB Cloudのカスタムコントローラーによるオートスケール対応
takaidohigasi
0
120
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
320
AWS DevOps Agentで インシデント対応をAIに任せたい
honmarkhunt
7
2.9k
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
290
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
230
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
1
150
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2k
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
140
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
400
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
480
Webの地図
yosuke_furukawa
PRO
6
4.5k
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Abbi's Birthday
coloredviolet
4
10k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
450
Faster Mobile Websites
deanohume
310
32k
Everyday Curiosity
cassininazir
0
320
Test your architecture with Archunit
thirion
2
2.4k
Docker and Python
trallard
47
4.2k
Balancing Empowerment & Direction
lara
6
1.3k
Speed Design
sergeychernyshev
33
2.1k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.1k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
700
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
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
ૣ͘ͳΓ·ͨ͠Ͷʁ
݁ -> Ϗϧυ͓ۚͰૣ͘Ͱ͖Δ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ