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
75
0
Share
Tips for making build faster without Instant Run
Tips for making build faster without Instant Run.
Tomoaki Imai
July 15, 2016
More Decks by Tomoaki Imai
See All by Tomoaki Imai
シリコンバレーでスタートアップを共同創業したファウンディングエンジニアとしての学び
tomoima525
1
1.8k
パッションの見つけ方,育て方
tomoima525
2
160
Decentralized ID とWebの未来
tomoima525
0
190
Web3/メタバースにおけるグローバルのトレンドと活用の最前線
tomoima525
2
3.8k
自分の道の歩み方~楽しくチャレンジするためのヒント~
tomoima525
2
610
Continuum: Background Checker with Zero-Knowledge Proof
tomoima525
0
2.7k
Catching up with TurboModule
tomoima525
1
4.5k
シリコンバレースタートアップのリモート開発
tomoima525
3
2k
A guide to writing specs toward engineers
tomoima525
0
340
Other Decks in Programming
See All in Programming
SPMマルチモジュールで テストカバレッジを取得する技法
yosshi4486
0
140
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
2
1.1k
Inspired By RubyKaigi (EN)
atzzcokek
0
500
密結合なバックエンドから TypeScript のコードを生成する
kemuridama
1
660
CSC307 Lecture 17
javiergs
PRO
0
310
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
2
400
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
400
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
260
OCRを使ってゲームのアイテムをデータ化する
kishikawakatsumi
0
130
LLM Plugin for Node-REDの利用方法と開発について
404background
0
150
AI時代のUIはどこへ行く?その2!
yusukebe
19
6.3k
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
460
Featured
See All Featured
Balancing Empowerment & Direction
lara
6
1.1k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
350
Side Projects
sachag
455
43k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
Speed Design
sergeychernyshev
33
1.8k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
Are puppies a ranking factor?
jonoalderson
1
3.5k
Music & Morning Musume
bryan
47
7.2k
Being A Developer After 40
akosma
91
590k
From π to Pie charts
rasagy
0
200
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Ҏ߱ʹظ)