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
Tips for making build faster without Instant Run
Search
Tomoaki Imai
July 15, 2016
Programming
0
65
Tips for making build faster without Instant Run
Tips for making build faster without Instant Run.
Tomoaki Imai
July 15, 2016
Tweet
Share
More Decks by Tomoaki Imai
See All by Tomoaki Imai
パッションの見つけ方,育て方
tomoima525
1
97
Decentralized ID とWebの未来
tomoima525
0
170
Web3/メタバースにおけるグローバルのトレンドと活用の最前線
tomoima525
2
3.3k
自分の道の歩み方~楽しくチャレンジするためのヒント~
tomoima525
2
520
Continuum: Background Checker with Zero-Knowledge Proof
tomoima525
0
2.6k
Catching up with TurboModule
tomoima525
1
4k
シリコンバレースタートアップのリモート開発
tomoima525
3
1.9k
A guide to writing specs toward engineers
tomoima525
0
300
A guide to writing specs toward engineers(Japanese)
tomoima525
9
2.5k
Other Decks in Programming
See All in Programming
来たるべき 8.0 に備えて React 19 新機能と React Router 固有機能の取捨選択とすり合わせを考える
oukayuka
2
870
PHPで始める振る舞い駆動開発(Behaviour-Driven Development)
ohmori_yusuke
2
230
童醫院敏捷轉型的實踐經驗
cclai999
0
200
20250613-SSKMvol.15
diostray
0
100
データの民主化を支える、透明性のあるデータ利活用への挑戦 2025-06-25 Database Engineering Meetup#7
y_ken
0
330
WebViewの現在地 - SwiftUI時代のWebKit - / The Current State Of WebView
marcy731
0
100
Create a website using Spatial Web
akkeylab
0
310
Railsアプリケーションと パフォーマンスチューニング ー 秒間5万リクエストの モバイルオーダーシステムを支える事例 ー Rubyセミナー 大阪
falcon8823
4
1k
今ならAmazon ECSのサービス間通信をどう選ぶか / Selection of ECS Interservice Communication 2025
tkikuc
20
3.7k
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
1
580
ニーリーにおけるプロダクトエンジニア
nealle
0
640
GitHub Copilot and GitHub Codespaces Hands-on
ymd65536
1
130
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
KATA
mclloyd
30
14k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Making Projects Easy
brettharned
116
6.3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
A designer walks into a library…
pauljervisheath
207
24k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
24k
Documentation Writing (for coders)
carmenintech
72
4.9k
Transcript
ਓྨ͕ Instant Run Λ͍͜ͳ ͦ͢ͷ·Ͱ Mercari, Inc. Tomoaki Imai
twitter: @tomoaki_imai github: tomoima525 ࠓҪ ஐষ Android Engineer 2016.1 transfered
to Mercari@US ඒຯ͍͠ΧϨʔͷΑ͏ʹ ਓΛͤʹग़དྷΔΑ͏ʹͳΓ͍ͨ
Recent https://speakerdeck.com/tomoima525/ab-testing-tips-for-mobile
Recent https://github.com/mercari/siberi-android Client library for AB Testing
Instant Run, ͬͯ·͔͢
Instant Runͷಛ • Ϗϧυ͕ര! • ݟ͍ͯΔActivityΛߋ৽ • Ξπ͍!!
Instant Runͷಛ • Ϗϧυ͕ര! • ݟ͍ͯΔActivityΛߋ৽ • Ξπ͍!! େ͖ͳϓϩδΣΫτͩͱ͍(1,2min) ߋ৽ͨ͠ϑϦͯ͠͠ͳ͍(ReRun͕ඞཁ)
ཧతʹΞπ͍(AS͕ϝϞϦര৯͍ɺCPUͿΜճ͢) ଞͷϓϩάϥϜ͕͘ͳΔ
None
Instant Run ਓྨʹૣ͗ͨ͢Μ…
ͱΓ͋͑ͣշదʹ։ൃ͢Δͨ ΊʹͬͯΔ͜ͱ
Tips 1. Self Instant Run
// Build with cached dependencies alias gud='./gradlew --offline assembleUsDev’ Build
// Notify after build is completed alias noti='terminal-notifier -message “done!!"'
alias gudn='./gradlew --offline assembleUsDev && noti’ Build & Notify https://github.com/julienXX/terminal-notifier
/** Build **/ alias gudd=‘gud Build & Install & Notify
/** Build **/ alias gudd=‘gud /** Show the latest ask
**/ && ls -lt ${AND_STD_DIR}/app/apk/ Build & Install & Notify
/** Build **/ alias gudd=‘gud /** Show the list of
apks **/ && ls -lt ${AND_STD_DIR}/app/apk/ /** The latest apk **/ | head -n 2 Build & Install & Notify
Build & Install & Notify /** Build **/ alias gudd=‘gud
/** Show the list of apks **/ && ls -lt ${AND_STD_DIR}/app/apk/ /** The latest apk **/ | head -n 2 /** Fetch the apk name **/ | awk '\''{print $9}'\''
Build & Install & Notify /** Build **/ alias gudd=‘gud
/** Show the list of apks **/ && ls -lt ${AND_STD_DIR}/app/apk/ /** The latest apk **/ | head -n 2 /** Fetch the apk name **/ | awk '\''{print $9}'\'' /** Install **/ | xargs -Immm adb install -r ${AND_STD_DIR}/app/apk/mmm
/** Build **/ alias gudd=‘gud /** Show the list of
apks **/ && ls -lt ${AND_STD_DIR}/app/apk/ /** The latest apk **/ | head -n 2 /** Fetch the apk name **/ | awk '\''{print $9}'\'' /** Install **/ | xargs -Immm adb install -r ${AND_STD_DIR}/app/apk/mmm /** Nofity when everything is done **/ && noti' Build & Install & Notify
/** Install **/ alias insl=‘gud && ls -lt ${AND_STD_DIR}/app/apk/ |
head -n 2 | awk '\''{print $9}'\''| xargs -Immm adb install -r $ {AND_STD_DIR}/app/apk/mmm’ Build & Install & Launch & Nofity = Self Instant Run
/** Install **/ alias insl=‘gud && ls -lt ${AND_STD_DIR}/app/apk/ |
head -n 2 | awk '\''{print $9}'\''| xargs -Immm adb install -r $ {AND_STD_DIR}/app/apk/mmm’ /** Launch **/ alias gudl=‘insl && adb shell am start com.mercariapp.mercari.dev/ com.kouzoh.mercari.activity.SplashActivity && noti' Build & Install & Launch & Nofity = Self Instant Run
• Good ! • ·͋·͍͋(--offlineޮՌ) • Ξπ͘ͳ͍(javaͷprocessͷΈ) • ଞͷ࡞ۀ͕ḿΔ(͘ͳΒͳ͍ɺ௨དྷΔ) •
Bad • ඞͣLaunchը໘ʹͬͯ͠·͏ Build & Install & Launch & Nofity = Self Instant Run
Tips 2. PlayGround
None
None
Android Playground • ࠷ݶͷϦιʔεϑΝΠϧ,UtilityΫϥε • ػೳ୯ҐͰߴʹ࣮͢Δ • ޙ΄ͲຊϓϩδΣΫτʹೖ͢Δ
Ingredients and Process • Ingredients ‣ build.gradle ( + proguard)
‣ Remove unused feature dependencies ‣ Application.java ‣ AndroidManifest.xml ‣ res/ ‣ utils/, lang/, Base Classes • Process ‣ Mix everything into new project(10min) ‣ Remove errors (50-60min)
͠Βͬͯ͘Έͨײ ˕͍ & Instant Runշద ˚ ෳͷػೳͷ։ൃΛ͍ͯ͠ΔͱMessyʹͳΔ ˚ ఆظతͳΩϟονΞοϓඞཁ →
ૉͷঢ়ଶΛmaster, Ճ͓͍ͯͨ͠ํ͕Α͍ػ ೳదٓmerge
Wrap up • ΦϨΦϨͳΜͪΌͬͯInstant Run͍͍Α • ػೳผ։ൃ༻ڥ(Playground)͍͍Α • ਓྨ͕Instant RunΛ͍͜ͳͤΔ·Ͱ࠲ͯͭ͠
(=AS2.2Ҏ߱ʹظ)