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
Androidアプリケーションのビルド体験をリモートインスタンスで改善する
Search
yagi
February 01, 2017
Technology
720
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Androidアプリケーションのビルド体験をリモートインスタンスで改善する
Enjoy Android Application Development !
yagi
February 01, 2017
More Decks by yagi
See All by yagi
医療現場の解像度を上げるために 開発チームが行っている取り組み
sys1yagi
0
920
これどうやって動いてるんだ? Spring Framework/Bootのソースを読む
sys1yagi
1
1.4k
Kotlin コルーチンを 理解しよう 2019 - KotlinFest2019 -
sys1yagi
40
32k
5分でわかるKotlin Coroutines Flow
sys1yagi
21
19k
Androidと非同期処理 とCoroutine1.0.0
sys1yagi
12
14k
Kotlin コルーチンを 理解しよう
sys1yagi
41
26k
アーキテクチャと Scaffolding Template
sys1yagi
8
1.5k
Androidの非同期処理をKotlinコルーチンで行う
sys1yagi
3
24k
解剖Kotlin ~バイトコードを読み解く~
sys1yagi
18
11k
Other Decks in Technology
See All in Technology
企業の現実世界をグラフで写し取る
sansantech
PRO
0
200
2026-09-26 Platform Engineering Kaigi 2026 インフラとアプリの境界線と委譲の設計 / Drawing the Infra and App Line
masasuzu
0
480
Lambda MicroVMsは常駐サーバーの代わりに なるか? Kiro Crew を動かして検証してみた / Kiro Crew on Lambda MicroVMs
k_adachi_01
2
340
AIエージェントを安全で速い現場監督にする:Jev・Obsidian・メタハーネス
x5gtrn
PRO
0
140
Kiro Meetup #8 Kiro アップデート (2026/3/21〜2026/9/24)
katzueno
1
310
Antigravity SDK for the Java Developer
glaforge
0
240
HacobuにおけるFDEとは/登壇資料(戸井田 裕貴)
hacobu
PRO
1
590
メルカリにおけるAI時代の高速プロトタイピング基盤「Arca」
ryotarai
18
13k
データ品質を壊しながらSnowflakeのAIに分析させてみた
kawanago
0
300
覗いてみよう 関数型ビジュアル言語×2Dグラフィックスの世界
yohyamasaki
0
150
HolmesGPTで始めるSREエージェント入門!プラットフォームの障害調査はAIにお任せ 〜
leveragestech
PRO
0
110
AIに賢く動いてもらうためのコンテキスト〜Snowflake女子会 vol.8
snowwmn0824
0
200
Featured
See All Featured
Joys of Absence: A Defence of Solitary Play
codingconduct
1
530
What's in a price? How to price your products and services
michaelherold
247
13k
Optimising Largest Contentful Paint
csswizardry
37
4k
Claude Code のすすめ
schroneko
67
230k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
600
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
470
My Coaching Mixtape
mlcsv
0
330
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
The Curious Case for Waylosing
cassininazir
1
540
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
620
Making Projects Easy
brettharned
120
6.8k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
250
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