google tv: la nuova frontiera android
DESCRIPTION
Conquistato il mercato degli smartphone e avviato l'attacco al mondo dei tablet, Android si appresta a diventare protagonista del display più grande e più diffuso: la televisione. La piattaforma Google TV, recentemente aggiornata nel software e nell'hardware, rappresenta un'evoluzione importantissima e allo stesso tempo estremamente accessibile per gli sviluppatori Android: senza neppure una API aggiuntiva, il sistema operativo consente di scrivere app perfettamente adattate alla nuova UI e ai nuovi controller. Il talk presenta la piattaforma, il set-top box Sony e un'app dimostrativa.TRANSCRIPT
gerdavax AT gmail DOT com
Stefano Sanna
Google TV: la nuova frontiera Android
• Presentazioni
• Panoramica su Android
• Google TV• storia• come funziona• sviluppo di app
• DEMO & Conclusioni
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Agenda
Responsabile Android Lab @ Open Reply
Co-autore del libro “Android Programmazione Avanzata”• (con E. Di Saverio, Ed. FAG)
Autore del libro “Java Micro Edition” • (Hoepli)
Supporter @ Codemotion since 2005 (JIP Day!)
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Speaker
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Per gli utenti Android è...
• Android non è solo il sistema operativo: è un progetto opensource, è una community di sviluppatori, è un’arena di manufacturer sempre più agguerriti...
• Le sue fondamenta basate su Linux lo rendono un’alternativa ideale a molte distribuzioni sviluppate ad hoc per i sistemi embedded e internet appliances
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Android è altrove!
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Oggi
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Domani
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Oggi
• 2007/11: Android è annunciato• 2008/09: T-Mobile G1 è il primo device Android• 2009/10: Arriva Android 2.0 Eclair e il Motorola Droid• 2010/05: Arriva Android 2.1 Froyo• 2010/06: Lancio della Google TV di prima generazione (piattaforma chiusa)• 2010/12: Android 2.3 Gingerbread introduce NFC• 2011/02: Android 3.0 e il Motorola Xoom aprono il mercato dei tablet• 2011/08: È pubblicato il Google TV SDK (beta)• 2011/10: La Google TV ora include l’Android Market• 2011/11: Android 4.0 Ice Cream Sandwich unifica tablet e smartphone• 2012/06: La nuova Google TV 2.0 compare su nuovi device• 2012/07: Arriva Jelly Bean 4.1• 2012/11: Arriva Jelly Bean 4.2
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Google TV nella storia della piattaforma Android
• Tra i device Android “non convenzionali”, la Google TV è la piattaforma ufficiale per i (futuri?) servizi interattivi oltre smartphone e tablet
• Benché non ancora disponibile in Italia, la Google TV è stata lanciata in Europa (UK) nel 2012 ed è prevista la progressiva diffusione in altri Paesi
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Disponibilità
• Prima generazione• Sony NSZ-GT1 (Blu-ray Player)• Sony NSX-40GT1 (Internet TV)• Logitech Revue (set-top box)
• Seconda generazione• LG 47G2/55G2 (Internet TV)• Sony NSZ-GS7 (set-top box)• Vizio Co-Star (set-top box)• ... altri in arrivo!
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Due generazioni
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Setup domestico
HDMI OUTHDMI IN
TV con ingresso HDMI
Qualsiasi decoder DVB-T, DVB-S, DVB-C con uscita HDMI
Accesso ad Internet via Ethernet o Wi-Fi
USB 2.0 Host, con supporto USB storage
• Logitech Revue• Basato su CPU Intel ATOM
• Aggiornato a Honeycomb 3.2 a fine 2012• Supporta ADK, HLS e USB storage• Piuttosto economico (circa €150 con tastiera wireless)
• Non è più in vendita (Logitech ha abbandonato Google TV), ma è possibile trovarlo ancora su ebay nuovo o usato
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Prima generazione
• Sony NSZ-GS7• Primo set-top box lanciato in Europa (Luglio 2012)!• Basato su CPU ARM• A bordo Android Honeycomb 3.2• Non esattamente economico
(circa €250), ma con un controller molto potente
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Seconda generazione
•
Android• Honeycomb 3.2• Second-screen app (Anymote)• Native USB Host
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Google TV per gli sviluppatori
https://developers.google.com/tv
• La piattaforma Google TV introduce
rispetto alla piattaforma standard!
• Un nuovo Content Provider e alcune costanti forniscono gli strumenti per accedere alla lista dei canali (solo TV) e per filtrare la piattaforma rispetto a smartphone e tablet
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Google TV API
0 (ZERO) NUOVE API
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Target Google TV: si decide tutto sul manifest
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.example.phototv" android:versionCode="1" android:versionName="1.0" >
<uses-sdk android:minSdkVersion="13" android:targetSdkVersion="15" />
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="false" android:smallScreens="false" android:xlargeScreens="false" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false" /> <uses-feature android:name="com.google.android.tv" android:required="true"/>
<uses-permission android:name="com.google.android.tv.permission.READ_CHANNELS">
<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:screenOrientation="unspecified" android:name=".PhotoTV" android:label="@string/app_name"> <intent-filter> [...] </intent-filter> </activity> </application>
</manifest>
• La scelta migliore è dotarsi di un STB vero
• Se non disponibile, si può ricorrere al Google TV Add-on:
• Gira su Linux 64bit con kernel KVM• Non può essere eseguito su ambiente virtuale• Non supporta streaming video (Platform 1.0)
• No STB? No emulatore? Forse c’è la via...
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Ambiente di test
• Effettuare la configurazione iniziale (lingua, dimensione schermo, rete, Google Account...)
• Il deployment delle app avviene attraverso la rete: le porte USB sono in modalità host e non sono accessibili ad adb
• Fortemente consigliato avere IP statici per STB e workstation di sviluppo
• Configurare il remote debugging (prox slide)• Se si utilizza un Logitech Revue, impostare
l’output a 720p (sigh!) per fare screenshot
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Configurazione del set-top box
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Configurazione adb
AndroidDev:~ gdx$ adb connect GTV_IP_ADDRESS
set-top box
host
• Le TV sono classificate come display “large”
• Schermi:• HD Ready (720p) classificati come tvdpi, 213 dpi• Full HD (1080p) classificati come xhdpi, 320 dpi
• 720p e 1080p realizzano la medesima risoluzione “indipendente”: 960x540dp
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Dimensioni e densità
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Dimensioni, densità e distanza
30-50cm300cm
smartphone5” - 320dpi
TV Full HD30” - 320dpi
La UI è a 10ft (circa 3m) dall’utente che• è in un ambiente rilassante o di svago• è in compagnia di amici, marito/moglie, figli...• è in un ambiente debolmente illuminato• potrebbe disporre di un impianto audio di alta qualità• non ha una tastiera né un mouse, ma uno o più telecomandi
più o meno equivalenti• si distrae prendendo una bibita, guardando il cellulare,
parlando con un amico
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
The 10ft environment
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Un’occhiata al telecomando
D-PAD, BACK, MENU, HOME, PiP
Tastiera QWERTY illuminata
TRACKPAD con click fisico (come sul MacBook Pro)
Un accelerometro disabilita la tastiera QWERTY mentre si usa il trackpad e viceversa
• È assolutamente consigliato l’uso di layout dinamici• Schermi diversi possono avere aree diverse di overscan: mai,
mai, mai... e poi mai! affidarsi a dimensioni assolute in pixel!• La view dell’app dovrebbe essere suddivisa in tre aree:
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
UI
Source:https://developers.google.com/tv/android/docs/gtv_android_patterns
• Navigation• Le app devono prevedere l’utilizzo del D-PAD• Tutte le viste devono essere accessibili senza touch pad
• Controlli• Evitare la digitazione: fornire, se possibile, suggerimenti o
scorciatoie...• Limitare l’uso del sistema di puntamento• La trappola: “è come un grosso tablet”. Falso! Manca la
gesture “swipe”• Si riscopre il valore del BACK fisico
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Good practice
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Good practice
Source:https://developers.google.com/tv/android/docs/gtv_android_patterns
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Oltre le guideline (Photo TV @ GDG Fest Firenze)
CENTER
CENTER
NAV:LEFT/RIGHT
CENTER
BACK
BACK
MENUNAV:
UP/DOWN
NAV:UP/DOWN/LEFT/RIGHT
MENU
NAV:LEFT/RIGHT
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
È arrivato il momento di divertirsi! :-)
• Il set-top box della Google TV...• è sempre a casa e nella stessa stanza (altro che “mobile”!)• è sempre nella stessa stanza• ha una UI gigantesca e comodamente accessibile• è sempre alimentato• è sempre connesso alla Rete
• Può diventare l’hub per i servizi di domotica:• interfaccia tra la casa e i suoi occupanti• gateway della casa verso il web
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Un occhio alla domotica
• Hardware:• Arduino UNO rev3 o Arduino MEGA ADK rev3• Termometro digitale 1-wire Dallas DS18B20• Potenziometro lineare multigiri
• Sensore di umidità (opzionale) • Electronic Brick Shield v 4.0 Pro (opzionale)
• Software:• usb-serial-for-android • Gauge Widget by F. Martens
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Un sistema domotico “casereccio”
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Connessioni
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Ok, facci vedere la demo!
DEMO
• La Google TV ha le sue specificità:• Lo storage USB non è montato su /mnt/sdcard o simili, ma
su un path che contiene l’ID del device connesso. Meglio affidarsi al broadcast Intent di notifica
• Il chip FT232RL di Arduino 2009 e Arduino 10000 non riesce a comunicare con la libreria usb-serial, dichiarata compatibile. Arduino Uno e Mega ADK funzionano
• È consigliabile chiudere esplicitamente la connessione di adb verso il STB: adb disconnect
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Diario di bordo...
I sorgenti Android e Arduino dell’app Home Control saranno pubblicati entro due settimane sul blog dello speaker
http://www.gerdavax.it
• Smartphone e tablet hanno stuzzicato idee brillanti, la Google TV offre nuovi spazi e contesti praticamente inesplorati
• “Enlarge your screen”! :-)• è possibile raggiungere nuovi contesti di utilizzo (molto
social) e di integrazione con i device mobili (2nd screen)• grande opportunità di coinvolgere utenti non avvezzi all’uso
di computer, tablet e smartphone• la Google TV si candida ad essere l’hub di servizi di home
automation e ausilio alle attività domestiche
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Conclusioni
• Mara Marzocchi, Ugo Landini, Marco Casario, Gosia Sosnowska, Chiara Russo e tutto il team di Codemotion per l’enorme lavoro che fanno ogni anno per la community italiana degli sviluppatori software
• Matteo “dekra” Bonifazi per la preparazione della prima versione di questa presentazione
• Freddy Martens (atstechlab.wordpress.com) per il componente Gauge
• Il team di Arduino, per aver creato questo meraviglioso strumento di prototipazione
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Ringraziamenti
• Google TV• http://www.google.com/tv/• https://developers.google.com/tv/• http://googletv.blogspot.it/• http://code.google.com/p/usb-serial-for-android/
• Hardware and community• http://store.sony.com/p/NSZ-GS7/en/p/NSZGS7• http://www.vizio.com/costar/overview• http://www.gtvhacker.com/
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Riferimenti e risorse
• mail: gerdavax AT gmail DOT com• blog: http://www.gerdavax.it• twitter: @gerdavax• slideshare: http://www.slideshare.net/gerdavax• Linkedin: http://www.linkedin.com/in/gerdavax
gerdavax AT gmail DOT comGoogle TV - Stefano Sanna
Contatti