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
Androidアプリケーションのビルド体験をリモートインスタンスで改善する
Search
yagi
February 01, 2017
Technology
4
610
Androidアプリケーションのビルド体験をリモートインスタンスで改善する
Enjoy Android Application Development !
yagi
February 01, 2017
Tweet
Share
More Decks by yagi
See All by yagi
医療現場の解像度を上げるために 開発チームが行っている取り組み
sys1yagi
0
620
これどうやって動いてるんだ? Spring Framework/Bootのソースを読む
sys1yagi
1
1.1k
Kotlin コルーチンを 理解しよう 2019 - KotlinFest2019 -
sys1yagi
40
30k
5分でわかるKotlin Coroutines Flow
sys1yagi
21
18k
Androidと非同期処理 とCoroutine1.0.0
sys1yagi
12
13k
Kotlin コルーチンを 理解しよう
sys1yagi
41
23k
アーキテクチャと Scaffolding Template
sys1yagi
8
1.3k
Androidの非同期処理をKotlinコルーチンで行う
sys1yagi
3
23k
解剖Kotlin ~バイトコードを読み解く~
sys1yagi
18
9.8k
Other Decks in Technology
See All in Technology
Hazard pointers with reference counter
ennael
PRO
0
100
いまからでも遅くない! コンテナでWebアプリケーションを 動かしてみよう(2-1)WebAPI座学
nomu
0
140
Valuable Software Engineering
avandeursen
0
250
【shownet.conf_】多様化するネットワーク環境を柔軟に統合するルーティングテクノロジー
shownet
PRO
0
280
Causal Impactを用いたLINE Pay UIの効果検証とABテスト実施への貢献
lycorptech_jp
PRO
2
470
Oracle Cloud Infrastructure:2024年9月度サービス・アップデート
oracle4engineer
PRO
0
350
不感対策ソリューション
jtes
0
230
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
2
200
PREEMPT_RT over the years
ennael
PRO
0
300
Efficient zero-copy networking using io_uring
ennael
PRO
0
270
エムスリーマネジメントチーム紹介資料 / Introduction of M3 Management Team
m3_engineering
0
240
Interfacing Kernel C APIs from Rust
ennael
PRO
0
210
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
459
32k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
45
4.9k
Designing the Hi-DPI Web
ddemaree
279
34k
The Straight Up "How To Draw Better" Workshop
denniskardys
231
130k
Why Our Code Smells
bkeepers
PRO
334
57k
In The Pink: A Labor of Love
frogandcode
139
22k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
504
140k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.4k
Raft: Consensus for Rubyists
vanstee
136
6.6k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
38
2.1k
GitHub's CSS Performance
jonrohan
1030
450k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
105
48k
Transcript
"OESPJEΞϓϦέʔγϣϯ ͷϏϧυମݧΛϦϞʔτΠϯ ελϯεͰվળ͢Δ 2017/02/01 ୈ2ճελʔτΞοϓAndroidษڧձ Toshihiro Yagi
ࣗݾհ w 5PTIJIJSP:BHJ !TZTZBHJ w DPPLQBE w "OESPJEΤϯδχΞ ٕज़෦
"OESPJEΞϓϦέʔγϣϯ ͷϏϧυͷ՝ w Ϗϧυʹ͕͔͔࣌ؒΔ w ϏϧυΛͭؒ$16ϝϞϦΛઐ༗ ͞Εͯ͠·ͬͯଞͷ࡞ۀ͕Ͱ͖ͳ͍
"OESPJEΞϓϦέʔγϣϯ ͷϏϧυͷ՝ w Ϗϧυʹ͕͔͔࣌ؒΔ w ϏϧυΛͭؒ$16ϝϞϦΛઐ༗ ͞Εͯ͠·ͬͯଞͷ࡞ۀ͕Ͱ͖ͳ͍
None
ରࡦ w CVJMEHSBEMFΛνϡʔχϯά w *OTUBOU3VOΛ͏ w ϋΠεϖοΫϚγϯΛௐୡ
ରࡦ w CVJMEHSBEMFΛνϡʔχϯά w *OTUBOU3VOΛ͏ w ϋΠεϖοΫϚγϯΛௐୡ w ϦϞʔτϏϧυΛ͏OFX
ϦϞʔτϏϧυͷงғؾ Local Machine ᶃ sync code Remote Machine ᶄ build
ᶅ get apk ᶆ install apk & launch activity Ϗϧυͷ෦ΛϦϞʔτϚγϯʹҕৡ͢Δ͜ͱͰ ϩʔΧϧϚγϯͷϦιʔεΛઐ༗͠ͳ͍
ϦϞʔτϏϧυͷར w ϩʔΧϧϚγϯͷϦιʔεΛѹഭ͠ͳ͍ w ෳͷϚγϯ͔Β͑ΔڥΛͭ͘ΕΔ w ϦϞʔτϚγϯͷεϖοΫ࣍ୈͰύϑΥʔ Ϛϯεແݶେ w ΫϥυΛ͏߹
ࣗ༝ʹࣺͯΒΕΔ
ϦϞʔτϏϧυڥߏஙखॱ w ϦϞʔτϚγϯΛ༻ҙ͢Δ w ϦϞʔτϚγϯͷڥΛ࡞Δ w ϦϞʔτϏϧυ༻ͷεΫϦϓτΛ༻ҙ͢Δ w ͏ɻշదɻ࠷ߴ?P? w
ίετͱ
ϦϞʔτϚγϯΛ༻ҙ͢Δ w ༨ͬͨϚγϯ w ϦϞʔτΠϯελϯε ($1 "84 "[VSFʜ
ϦϞʔτϚγϯΛ༻ҙ͢Δ w ༨ͬͨϚγϯ w ϦϞʔτΠϯελϯε ($1 "84 "[VSFʜ
ϦϞʔτϚγϯͷڥΛ࡞Δ w "84 ($1ͳͲͰΠϯελϯεΛ࡞Δ w ϦϞʔτϚγϯͷ੩త*1Λઃఆ͢Δ w BOESPJEͷϏϧυڥΛߏங͢Δ w ϩʔΧϧϚγϯͰTTILFZΛൃߦͯ͠ొ͢Δ
ϦϞʔτϚγϯͷڥΛ࡞Δ http://sys1yagi.hatenablog.com/entry/2016/11/13/162400
ϦϞʔτϏϧυ༻ͷ εΫϦϓτΛ༻ҙ͢Δ GBCSJDΛͬͨྫ @task def build(): build_dir = tmp_dir +
package sync(build_dir) gradle_cmd = assemble_command() apk_name = apk_name_format() # run gradlew on remote instance with cd(build_dir): run(gradle_cmd) # get apk local("mkdir -p " + module + "/build/outputs/apk/") get(remote_path=build_dir + "/" + module + "/build/outputs/apk/" + apk_name, local_path=module + "/build/outputs/apk/") # start App local("adb" + " push ./" + module + "/build/outputs/apk/" + apk_name + " /data/local/tmp/" + package) local("adb" + " shell pm install -r '/data/local/tmp/" + package + "'") local("adb" + " shell am start -n '" + package + "/" + launch_activity + "' -a android.intent.action.MAIN -c android.intent.category.LAUNCHER")
͏ɻշదɻ࠷ߴ?P?
ίετͱ w େମշదͳεϖοΫ w ($1OIJHIDQV ถࠃ I w "84DYMBSHF ౦ژ
I w ͣͬͱىಈͬ͠ͺͳ͠ͷ߹ֹ݄ w ($1 w "84
ࣗಈγϟοτμϯ w $MPVE8BUDIΛͬͨࣗಈγϟοτμϯ "84 w ͖͍͠Λz࣌ؒʹର͢Δ$166UJMJ[BUJPO $166UJMJ[BUJPO zͰઃఆ w
ΞΫγϣϯͱͯ͠γϟοτμϯΛઃఆ w ىಈGBCSJDͰCPUPΛͬͯϏϧυ࣌ʹ"1* Λୟ͘ w ($1DSPOࠐΉͱ͔ʹͳΓͦ͏ɻHDMPVEͰىಈ
ϲ݄ͷར༻࣌ؒͱίετ w ΤϯδχΞ໊ w ߹ܭར༻࣌ؒd࣌ؒ w ֹ݄d w Ұਓ͋ͨΓd
ମݧ͕͍͍͘͢͝ͷͰੋඇ͓ࢼ͍ͩ͘͠͞ɻ
ͱΓ͋͑ͣؾܰʹࢼͯ͠Έ͍ͨͱ ͍͏࣌
$ZCPSH#VJME http://cyborg-build.com/
$ZCPSH#VJMEͷΈ Local Machine GCS Bucket Cyborg-Build.com Remote Instance ᶃrsync code
ᶄbuild request ᶅremote op ᶆrsync code ᶇbuild on docker ᶈupload artefacts ᶉdownload artefacts ᶊinstall & launch ϩάΠϯͨ͠(PPHMFΞΧϯτͱDZCPSHCVJMEDPNͷΈ͕ιʔείʔυʹ৮ΕΔߏ
"MQIB1SFWJFX w ࠓͷͱ͜Ζແྉ w HDMPVE GBCSJDͰར༻Մೳ w CVJMEMBVODIͷ΄͔UFTUMJOU݁Ռͷอଘͳ Ͳαϙʔτ w
*%&"QMVHJOԽ༧ఆ w ͥͻ͓ࢼ͍ͩ͘͠͞ϑΟʔυόοΫ͍ͩ͘͞
&OKPZ "OESPJE"QQMJDBUJPO %FWFMPQNFOU