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 TV - Japan Android Group 2016 Aug.
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Takashi EGAWA
August 23, 2016
Programming
630
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Android TV - Japan Android Group 2016 Aug.
Takashi EGAWA
August 23, 2016
More Decks by Takashi EGAWA
See All by Takashi EGAWA
Fuchsia Shibuya.apk #28 2018.9.28
t_egg
1
330
GDG Tokyo Android Architecture Components - LiveData
t_egg
9
2.6k
DroidKaigi 2016 パフォーマンスを追求したAndroidアプリを作るには
t_egg
8
9.1k
Other Decks in Programming
See All in Programming
[Dev Group Paris Octobre 26] Agentforce, SIforce, Claudeforce, Slackbot… on s'y retrouve ?
nabondance
0
120
AI時代のFlutter品質設計 — アプリ品質を守るQuality Layers
omatty198
0
150
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
450
クラウドゲーミングのパフォーマンス最適化に挑む / Cloud Gaming Performance Tuning
vivion
0
290
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
190
R8 の設定見直しでアプリサイズ削減
andpad
0
230
Inertia Rails: The One-Person Framework with React & Friends
skryukov
0
160
Performance Optimization With LLMs
xleitix
0
210
조합이폭발하는디자인시스템이걸눈으로도테스트하라고요
giljongyu
0
610
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
4
1.1k
golang-bob.pdf
iwatsukayura
0
140
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
5
5.8k
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
55
13k
Utilizing Notion as your number one productivity tool
mfonobong
4
630
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Are puppies a ranking factor?
jonoalderson
2
4.1k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
620
Side Projects
sachag
456
43k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.8k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
WENDY [Excerpt]
tessaabrams
14
40k
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
270
The Invisible Side of Design
smashingmag
301
52k
Transcript
ຊ"OESPJEͷձ݄ఆྫձ "OESPJE57ରԠͷ ΞϓϦέʔγϣϯ։ൃɾ৴ํ๏ ߐਸ UFHBXB!HNBJMDPN 4NBSUJVN ג (PPHMF%FWFMPQFS&YQFSU
"OESPJE57ͱ
ϦϏϯάϧʔϜͰ͏ϓϩμΫτ ϦϏϯάϧʔϜͰͷϢʔβʔମݧʹϑΥʔΧεͨ͠ (PPHMFͷϓϩμΫτ ˙(PPHMF$BTU ˙"OESPJE57 Chromecast Audio Chromecast Android
TV
ϦϏϯάϧʔϜͰͷϢʔβʔମݧʹϑΥʔΧεͨ͠ (PPHMFͷϓϩμΫτ ˙(PPHMF$BTU ˙"OESPJE57 ϦϏϯάϧʔϜͰ͏ϓϩμΫτ Chromecast Audio Chromecast Android
TV
σόΠεͷܗଶ ܕ Ұମܕ $ISPNFDBTU /7*%*"4)*&-% 9JBPNJ.J#PY 5PTIJCB4NBSU57 40/:#3"7*" 4)"31"2604
ܕɿ ઃఆૢ࡞ʹଟগͷ͕ࣝඞཁ͕͍ͩ׳Εͨطଘͷػث͕͑Δ Ұମܕɿ ઃఆૢ࡞༰қ͕ͩػثຊདྷͷߪೖϥΠϑαΠΫϧͱ߹͍͍
(PPHMF$BTUͱ"OESPJE57 (PPHMF$BTU ˙ΞϓϦ։ൃ (PPHMF$BTU4%, Wʹ ެ։ Λ༻͍ͯ։ൃ TFOEFSσόΠεͱͯ͠ԼهΛఏڙ w"OESPJE"1* wJ04"1*
w$ISPNF"1* ˙ΞϓϦ৴ (PPHMF$BTU4%,%FWFMPQFS ʹొʢॳճυϧʣ͠৴ IUUQTDBTUHPPHMFDPNQVCMJTI
(PPHMF$BTUͱ"OESPJE57 (PPHMF$BTU ˙ΞϓϦ։ൃ (PPHMF$BTU4%, Wʹ ެ։ Λ༻͍ͯ։ൃ TFOEFSσόΠεͱͯ͠ԼهΛఏڙ w"OESPJE"1* wJ04"1*
w$ISPNF"1* ˙ΞϓϦ৴ (PPHMF$BTU4%,%FWFMPQFS ʹొʢॳճυϧʣ͠৴ IUUQTDBTUHPPHMFDPNQVCMJTI "OESPJE57 ˙ΞϓϦ։ൃ ௨ৗͷ"OESPJEΞϓϦ։ൃ -FBOCBDL-JCSBSZͰͷ։ൃ $BTUΞϓϦඪ४ಈ࡞ ˙ΞϓϦ৴ ௨ৗͷΞϓϦͱಉ༷ʹ(PPHMF1MBZ Ͱͷ৴ ˞৹ࠪ͋Γ
"OESPJE57˺"OESPJE "OESPJE57 "OESPJE r"GFX(PPHMFBQQT r4PNFIBSEXBSFGFBUVSFT 1MBUGPSN57GFBUVSFT 0&.$VTUPNJ[BUJPO
w։ൃπʔϧ4%,طଘͷͷͱڞ௨ w"1*جຊతʹͯ͢ར༻Մ wͨͩ͠ɺ͍͔ͭ͘ͷ(PPHMFΞϓϦඇࡌ 8&#ϒϥβ $ISPNF (PPHMF.BQT ϝʔϧ (NBJM (PPHMF )BOHPVU w57ͷಛੑ্ɺࡌ͍ͯ͠ͳ͍ϋʔυΣΞػೳ͋Γ
6OJUZωΠςΟϒαϙʔτ w6OJUZ͔Β"OESPJE57ΛωΠςΟϒαϙʔτ wίʔυϥϘl"OESPJE57(BNFTGPS6OJUZz͋Γ IUUQHDPDPEFMBCT
6OJUZͰͷ73ʹೃછΈ͕ͳ͍ਓ
6OJUZͰͷ73ʹೃછΈ͕ͳ͍ਓ 6OJUZʹΑΔ73ΞϓϦέʔγϣϯ։ൃ ʕʕ࡞Γͳ͕ΒֶͿόʔνϟϧϦΞϦςΟೖ +POBUIBO-JOPXFTɹஶ ߴڮݑҰɺ҆౻ԝɺߐਸɺ͋ΜͲ͏͢͠ɹ༁ ग़൛ɿΦϥΠϦʔδϟύϯ ݄ൃച༧ఆ ԁ
ϖʔδ *4#/
"OESPJE57ΤϛϡϨʔλ w͔ͭͯͷ"OESPJE57ΤϛϡϨʔλಈ࡞ෆ҆ఆͩͬ ͕ͨɺݱࡏൺֱత҆ఆ͓ͯ͠Γɺߴʹಈ࡞͢Δ wσόΠεΛඞཁͱͤͣʹ։ൃͰ͖Δ
57ରԠͷجຊ
57ରԠͷجຊ wϥϯυεέʔϓݻఆ wૢ࡞෦ࠨӈʹஔ্͖Լઅɻ"DUJPO#BSෆཁ wϦϞίϯૢ࡞ʢ%1BE·ͨήʔϜίϯτϩʔϥʣ wϥϯνϟʔʹఏڙ͢Δ57όφʔ"DUJWJUZͷߟྀ wΦʔόʔεΩϟϯ wϋʔυΣΞػೳͷߟྀ w-FBOCBDLϥΠϒϥϦ࠾༻ͷݕ౼ wެ։લ৹ࠪ
57όφʔ ΞϓϦͷΤϯτϦϙΠϯτͷఆٛ
57όφʔ w57ͷϗʔϜεΫϦʔϯ͔ΒΞϓϦΛىಈ͢ΔͨΊͷ ΤϯτϦϙΠϯτͱͳΔ w57όφʔΛϢʔβʔ͕ΫϦοΫ͢ΔͱΞϓϦΛ ૢ࡞Ͱ͖ΔΑ͏ʹͳΔ
57όφʔ wYQY YIEQJϦιʔε wΞϓϦ໊͕ಡΊΔΑ͏ʹ͢Δ͜ͱʢ֤ࠃޠʣ
57όφʔͷՃ w"OESPJE.BOJGFTUYNM
57όφʔͷՃʢήʔϜͷ߹ʣ w"OESPJE.BOJGFTUYNM
ىಈ"DUJWJUZ ىಈ͖͢"DUJWJUZΛΒͤΔ
"DUJWJUZͷఆٛ w"OESPJE.BOJGFTUYNM
ΦʔόʔεΩϟϯ ը໘ͷ֎पʹର͢Δߟྀ
ΦʔόʔεΩϟϯ wඳը͕อূ͞Εͳ͍֎पͷྖҬ wΨΠυϥΠϯͱͯ͠ɺपғ
φϏήʔγϣϯɾ ϑΥʔΧεɾબ 57ʹ͓͚ΔϢʔβʔʹΑΔૢ࡞
φϏήʔγϣϯɾϑΥʔΧεɾબ w%1BEήʔϜίϯτϩʔϥʔͰͷΩʔೖྗૢ࡞ w্Լࠨӈͷ࢛ํʹҠಈ͕ݶఆ wॎԣೋ࣍ݩͷφϏήʔγϣϯܦ࿏͕ཧղ͠ ͍͢Α͏ʹ wϑΥʔΧε wৗʹͭͷΦϒδΣΫτʹϑΥʔΧε͢Δ ʢϢʔβʔ͕ࠓͲ͜Λૢ࡞͍ͯ͠Δ͔ཧղ Ͱ͖ΔΑ͏ʹʣ
Items Status KEYCODE_DPAD_UP KEYCODE_DPAD_DO WN
KEYCODE_DPAD_LEF T KEYCODE_DPAD_RIG HT KEYCODE_DPAD_CEN TER KEYCODE_BUTTON_A A" KEYCODE_BUTTON_B B" KEYCODE_BACK BACK" KEYCODE_HOME HOME" Android"TV" Items Focus nextFocusDown nextFocusUp nextFocusRight nextFocusLeft ํφϏήʔγϣϯ wجຊతʹͯ͢ΩʔΠϕϯτͱͯ͠ૹग़͞ΕΔ wPO,FZ%PXOͰಠࣗʹॲཧ͢Δ͜ͱՄೳ wϑΥʔΧεભҠ͕ෆࣗવͳ߹OFYU'PDVT999ཁૉͰมߋ͢Δ android:nextFocusRight=“@id/button1" android:nextFocusLeft="@id/button2"
<ImageView android:id="@+id/play_pause_button" android:focusable="true" android:nextFocusRight="@+id/ffw_button" android:nextFocusLeft="@+id/rewind_button" /> ϑΥʔΧεΛड͚औΒͳ͍7JFX wز͔ͭͷ7JFXσϑΥϧτͰϑΥʔΧεΛड͚औΒͳ͍ͷͰɺ໌ࣔత ʹઃఆ͕ඞཁ
wྫ*NBHF7JFXɺ5FYU7JFXɺ-JOFBS-BZPVUͳͲ
ϋʔυΣΞػೳ εϚϗλϒϨοτͱͷҧ͍ͷߟྀ
ϋʔυΣΞػೳ w57Ͱඪ४αϙʔτ͞Εͳ͍ػೳ͕͋Δ wແ͍͜ͱΛલఏʹ࡞Δ wڞ௨ΞϓϦͷ߹ɺػೳΛඞਢͱ͠ͳ͍ࢫΛએݴ͠ɺ࣮ߦ࣌ʹػೳͷ ༗ແΛνΣοΫ͢Δ
android.hardware.touchscreen android.hardware.faketouch android.hardware.telephony android.hardware.camera Bluetooth android.hardware.bluetooth Near Field Communications (NFC) android.hardware.nfc GPS android.hardware.location.gps android.hardware.microphone android.hardware.sensor <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
҉తͳϋʔυΣΞཁٻ wύʔϛογϣϯཁٻʢVTFQFSNJTTJPOʣΛ͢Δͱɺ҉తʹϋʔυΣ ΞػೳΛཁٻͨ͜͠ͱʹͳΔέʔε͕͋Δ w໌ࣔతʹVTFGFBUVSFλάʹSFRVJSFEGBMTF͕ඞཁ
3&$03%@"6%*0 android.hardware.microphone $".&3" android.hardware.camera "$$&44@'*/&@-0$"5*0/ android.hardware.location android.hardware.location.gps
$16ΞʔΩςΫνϟ wੈͷதͷଟ͘ͷ"OESPJE57σόΠεɺΠϯςϧܥ$16Λࡌ͍ͯ͠Δ wͨͩ͠ɺ40/:#3"7*"ͷΑ͏ʹ"3.Λ࠾༻͍ͯ͠Δͷ͋ΔͷͰɺ $16ΞʔΩςΫνϟʔʹґଘ͢ΔΞϓϦߟྀ͕ඞཁ
-FBOCBDLϥΠϒϥϦ 57༻6*ϥΠϒϥϦ
-FBOCBDLϥΠϒϥϦ w57͚Ϣʔβʔମݧͷ࣮Λࢧԉ͢ΔαϙʔτϥΠϒϥϦ wैདྷͷWαϙʔτϥΠϒϥϦɺW3FDZDMF7JFXΛར༻͠ ֦ͨுϥΠϒϥϦ wඞਢͰͳ͍͕ར༻͢Δͱ57͚6*ͷָ࣮͕ʹͳΔ wΦʔόʔεΩϟϯྖҬͷߟྀෆཁ w-FBOCBDLςʔϚ w57༻ඪ४ςʔϚ <activity
android:name="com.example.android.TvActivity" android:label="@string/app_name" android:theme="@style/Theme.Leanback">
#SPXTF'SBHNFOU wͯ͢ͷϝσΟΞίϯςϯπΛҰՕॴʹ·ͱΊͯӾཡͰ͖ΔΑ͏ʹ͢Δ wΧςΰϦ͝ͱͷྨɺ֤ϝσΟΞͷάϦουදࣔͳͲ͕ඪ४ͰՄೳ 3&$03%@"6%*0
android.hardware.microphone $".&3" android.hardware.camera "$$&44@'*/&@-0$"5*0/ android.hardware.location android.hardware.location.gps
#SPXTF'SBHNFOU 3&$03%@"6%*0 android.hardware.microphone $".&3"
android.hardware.camera "$$&44@'*/&@-0$"5*0/ android.hardware.location android.hardware.location.gps wΧςΰϦબ࣌ɺΧςΰϦʹରԠ͢ΔϝσΟΞͷλΠτϧͳͲΛදࣔ
%FUBJMT'SBHNFOU w݅ͷϝσΟΞίϯςϯπͷৄࡉͳใϝσΟΞʹର͢Δૢ࡞Λఏڙ 3&$03%@"6%*0 android.hardware.microphone
$".&3" android.hardware.camera "$$&44@'*/&@-0$"5*0/ android.hardware.location android.hardware.location.gps
1MBZCBDL0WFSMBZ'SBHNFOU wϝσΟΞͷࢹௌɾૢ࡞ʢ࠶ੜɾఀࢭɾ࣍ɾલͳͲʣ wؔ࿈ίϯςϯπͷදࣔ
4FBSDI'SBHNFOU wϝσΟΞͷࢹௌɾૢ࡞ʢ࠶ੜɾఀࢭɾ࣍ɾલͳͲʣ wؔ࿈ίϯςϯπͷදࣔ
όʔδϣϯͷҧ͍ ৽ چ
3FDPNNFOEBUJPOTʢΦεεϝʣ wΞϓϦ͕Ϣʔβʔʹ͓͢͢Ί͍ͨ͠ϝσΟΞίϯςϯπΛఏڙ wϢʔβʔ͕બ͢ΔͱͦͷϝσΟΞʹμΠϨΫτʹඈͿ͜ͱ͕Ͱ͖Δ w-FBOCBDLϥΠϒϥϦͱผͷϥΠϒϥϦ wΦεεϝ͖͢ͷͷ҆ w࣍ͷίϯςϯπྫʣγϦʔζͷ࣍ͷΤϐιʔυ w৽͍͠ίϯςϯπྫʣ৽γϦʔζਓؾίϯςϯπ wؔ࿈ίϯςϯπྫʣϢʔβʔͷࢹௌཤྺʹجͮ͘
android { compileSdkVersion 24 buildToolsVersion '24' ... } dependencies
{ ... compile 'com.android.support:leanback-v17:24.0.0' compile 'com.android.support:recommendation:24.0.0' } ར༻͢Δʹ wCVJMEHSBEMF
"1,ͷ৴ 57ରԠΞϓϦͷެ։
wՁ֨ͱൢചҬ 1SJDJOH%*453*#65*0/ ͔Β"OESPJE57ͷ ΧςΰϦʹνΣοΫΛೖΕΔ͜ͱͰ57༻ϨϏϡʔ͕ߦΘΕΔ wϨϏϡʔ͕௨Εɺ57༻1MBZ4UPSFͰެ։͞ΕΔ wϨϏϡʔ͕௨Βͳ͘ͱɺ௨ৗͷ1MBZ4UPSFʹӨڹͳ͍ wυΩϡϝϯτɿ"OESPJE57ͷʢIUUQHPPHM"S1Y1Yʣ w-&"/#"$,@-"6/$)&3 w57༻όφʔը૾ Y
YIEQJ wαϙʔτ֎ͷϋʔυΣΞͷґଘΛഉআʢλονεΫϦʔϯͳͲʣ wύʔϛογϣϯઃఆʹΑΔ҉తͳϋʔυΣΞཁٻͷ֬ೝ wϥϯυεέʔϓରԠ wڑ͕Ε͍ͯͯݟ͑ΔΑ͏ʹ wΦʔόʔεΩϟϯͷରԠ w-FBOCBDL6*ͷରԠ "1,ͷ৴
࠷ޙʹ wϦϏϯάϧʔϜʹϑΥʔΧεͨ͠ϓϩμΫτ (PPHMF$BTU "OESPJE57 w"OESPJE57$BTUඪ४ࡌͷl"OESPJEzͰ͋Δ w57ରԠʹ6*ϋʔυΣΞػೳͷߟྀ͕ඞཁ w৴ʹࣄલ৹͕ࠪඞཁ w57ରԠΛࢧԉ͢ΔͨΊʹ-FBOCBDLϥΠϒϥϦͳͲͷ ඪ४෦͕ఏڙ͞Ε͍ͯΔ