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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Tomoaki Imai
July 15, 2016
Programming
0
68
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
1.5k
パッションの見つけ方,育て方
tomoima525
2
140
Decentralized ID とWebの未来
tomoima525
0
180
Web3/メタバースにおけるグローバルのトレンドと活用の最前線
tomoima525
2
3.7k
自分の道の歩み方~楽しくチャレンジするためのヒント~
tomoima525
2
580
Continuum: Background Checker with Zero-Knowledge Proof
tomoima525
0
2.6k
Catching up with TurboModule
tomoima525
1
4.4k
シリコンバレースタートアップのリモート開発
tomoima525
3
2k
A guide to writing specs toward engineers
tomoima525
0
320
Other Decks in Programming
See All in Programming
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
380
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1.6k
並行開発のためのコードレビュー
miyukiw
0
320
CSC307 Lecture 09
javiergs
PRO
1
840
要求定義・仕様記述・設計・検証の手引き - 理論から学ぶ明確で統一された成果物定義
orgachem
PRO
1
170
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
410
CSC307 Lecture 07
javiergs
PRO
1
560
AI時代の認知負荷との向き合い方
optfit
0
160
コントリビューターによるDenoのすゝめ / Deno Recommendations by a Contributor
petamoriken
0
210
Architectural Extensions
denyspoltorak
0
300
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
140
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
350
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.1k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
300
Discover your Explorer Soul
emna__ayadi
2
1.1k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
260
Google's AI Overviews - The New Search
badams
0
910
Six Lessons from altMBA
skipperchong
29
4.2k
A Tale of Four Properties
chriscoyier
162
24k
Designing for Performance
lara
610
70k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
86
Navigating Team Friction
lara
192
16k
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Ҏ߱ʹظ)