1. Enlarge
your screen :-)
Introducing the Google TV
Matteo Bonifazi - Stefano Sanna
GDG Roma
Florence - 2012/10/19
2. Let’s talk about...
• Speakers
• Android happens elsewhere
• Google TV
• timeline
• how it works
• writing apps for the Google TV
• beyond the TV: second screen and Anymote
• DEMO
• Conclusion
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
3. Ladies & gentlemen...
• Matteo Bonifazi
• Android Developer @ Open Reply Android Lab
• Member of GDG L-Ab Roma
• Stefano Sanna
• Head of Open Reply Android Lab
• Author (with E. Di Saverio) of
“Android Programmazione Avanzata” (Ed. FAG)
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
4. For most people Android is...
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
5. Android happens elsewhere
• “Beyond the product” (being an operating
system), Android is a rich eco-system: open
source, widely supported by manufacturers
and developers...
• Its strong and stable Linux foundation makes
Android an affordable alternative to “typical
Linux distribution” for embedded systems
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
8. Today
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
9. Google TV
• Among these “unconventional” Android
devices, the Google TV is the official platform
for (upcoming?) interactive services “beyond
smartphones and tablets”
• Although it has still not been announced in
Italy, Google TV has landed in Europe (UK)
this year and it will be available in other
country later in 2012
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
10. Timeline
• 2007/11
• Android is announced
• 2008/09
• T-Mobile G1 launched
• 2010/06
• Launch of Google TV 1st gen as a “closed platform”
• 2011/02
• Motorola Xoom officially brings Android into the tablet market
• 2011/08
• Google TV SDK (beta) is published: the platform is now open!
• 2011/10
• Google TV update includes Android Market
• 2011/11
• Ice Cream Sandwich merges smartphone and tablets in a single platform
• 2012/06
• Google TV 2.0 and Jelly Bean mark new Android evolution
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
11. Google TV hardware
• First generation devices
• Sony NSZ-GT1 (Blu-ray Player)
• Sony NSX-40GT1 (Internet TV)
• Logitech Revue (set-top box)
• New generation devices
• LG 47G2/55G2 (Internet TV)
• Sony NSZ-GS7 (set-top box)
• Vizio Co-Star (set-top box)
• More to come later this year...
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
12. Any TV with HDMI input
How it works
Any DVB-T, DVB-S, DVB-C
decoder with HDMI output
HDMI IN HDMI OUT
Internet connection via Optional external
Ethernet or WiFi storage via USB 2.0
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
13. Logitech Revue
• First generation of Google TV device
• Based on Intel ATOM CPU
• Recently updated to Honeycomb 3.2
• Supports ADK, HLS and USB storage
• Affordable (about €150 with keyboard)
• Unfortunately it is no longer sold... but it can
be easily found used or brand-new on ebay! :-)
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
14. Sony NSZ-GS7
• Second generation of Google TV
• First STB launched in Europe (July 2012)!
• Based on ARM CPU
• Equipped with
Honeycomb 3.2
• Not so cheap
(about €250)
with enhanced remote controller
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
15. Google TV main features
• For end-users
• Rent movies and TV episodes on demand
• Youtube
• Chrome
• 3rd party apps
• Movies, pictures, music on local storage
• For developers
• Honeycomb 3.2 platform
• Rich, powerful and well-known Android multiscreen API
• Google Play Store for distributing apps
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
16. Google TV API
• The Google TV platform consist of
0 (ZERO) NEW API
over the “standard” platform!
• A new Content Provider and a few constants
provide the way to address channel switching
and filter platform specific features
• Android SDK and Eclipse are the basic toolkit
for targeting the Google TV!
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
18. Test environment
• The best is to have a real set-top box
• If not available, install the Google TV Add-on
• Runs on Linux 64bit with KVM Kernel
• Can’t run on virtual environments
• Does not support video streaming (as for Platform 1.0)
• The DIY way: a old-fashioned Android 1.x
device (HTC Dream, HTC Magic, Samsung
Galaxy) with D-PAD can be used to test
navigation!
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
19. Configure the set-top box
• Run the initial configuration (language, screen
size, network, Google Account...)
• Apps deployment and debugging is over the
network connection. USB ports work in host
mode.
• Try to have a fixed IP address for both Google
TV STB and development workstation
• Enable remote debugging and assign remote
debugging host IP
• If using a Logitech Revue: set resolution to 720p (sigh!) to get
screenshots via ADB
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
20. Let them find each other... :-)
set-top
box
host AndroidDev:~ gdx$ adb connect GTV_IP_ADDRESS
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
21. Size and density
• The TV screen is classified as “large”
• HD Ready TV (720p) are classified as tvdpi
density, 213 dpi
• Full HD TV (1080p) are classified as xhdpi
density, 320 dpi
• 720p and 1080p have the same “independent”
resolution: 960x540dp
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
22. Size, density and distance
TV Full HD
30” - 320dpi
smartphone
5” - 320dpi
30-50cm
300cm
23. The 10ft environment
• The UI is at 10ft (about 3m) from the user
which
• is in a relaxing/funny environment
• is shared with family and friends
• is in a dimmed environment
• provides (high quality) audio that is not (usually) optional
• has no keyboards and mouse/touchpads, that are (usually)
replaced by compact remote controllers with simple 5-way
navigation (aka D-PAD)
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
24. A closer look to the controller
D-PAD, BACK, MENU,
HOME, PiP
An embedded accelerometer disables
the QWERTY keyboard when using the
trackpad, which is disabled when using
the back keyboard
TRACKPAD with hard
button (as in MBP)
BACK-LIGHT QWERTY
KEYBOARD Enlarge your screen
Matteo Bonifazi - Stefano Sanna
25. Good practices
• UI
• Dynamic layouts and relative sizes are encouraged
• Different screens may have different overscan areas: never
rely on physical pixels!!!
• App layout should be divided in three areas:
global, contextual and detail
Source:
https://developers.google.com/tv/android/docs/gtv_android_patterns
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
26. Good practices
• Navigation
• Every App should be implemented according to D-PAD
navigability
• All the controls in each View has to be get through the D-PAD
• Controls
• Avoid long typing: try, if possible, to suggest texts,
shortcuts...
• Limit use of pointing
device
• False friend: “it seems a
big tablet”. It is not.
The user can’t swipe on
it!
• BACK is your friend!
Source:
https://developers.google.com/tv/android/docs/gtv_android_patterns
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
28. Album selection Photo viewer “views”
Album overview
Picture browser
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
29. Main and sub navigation
• The developer has to identify main navigation (on
the detail view, where the user spends more of his
time) and sub navigation (contextual view, used less
often)
• In the photo browser app:
• Likelihood, the user will spend most of time browsing photos of an
album, instead of jumping between albums
• The main navigation is the photo browser within an album
• The sub navigation is the selection of an album
• The main navigation should performed using just
the D-PAD
• The sub navigation could be accessed using
secondary button (e.g., MENU and BACK)
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
Google will forgive us for this... ;-)
30. Navigation
NAV:
CENTER UP/DOWN/LEFT/RIGHT
MENU
NAV:
UP/DOWN
BACK
CENTER
MENU
CENTER
NAV:
LEFT/RIGHT
NAV: BACK
LEFT/RIGHT
31. Beyond the TV
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
32. Second Screen applications
• Enhance interactions between Google TV and
others device ( smartphone,tablets,etc.)
• Adding more functionality for the Google TV
itself
• Huge opportunities to develop new different
kind of application
Able Remote: Transform your Android Multiplayer Games: Android device is the
device in a custom Google TV Remote joystick and the TV is the controller
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
33. Anymote
• Anymote protocol is IP layer protocol
• Devices use TLS/SSL to avoid sniffing issues
• Thanks to Anymote service Google TV stb can
receive and respond to Anymote messages
• In order to communicate with the Google TV, a
remote app does:
• Identifies Google TV
• Authenticates the device through Paring Protocol
• Sends events (connection, key, mouse, trackball...)
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
34. Conclusions
• Have fun with smartphones and tablet, but
don’t forget that it is only the beginning!
• Google TV enlarges “screens and
opportunities”
• new entertainment machine for people not so comfortable
with computers
• second screen applications may enhance UX and encourage
gaming
• Google TV could be the cornerstone of new home automation
application and services: the STB is always powered, always
connected, always accessible
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
35. Resources
• Google TV
• http://www.google.com/tv/
• https://developers.google.com/tv/
• http://googletv.blogspot.it/
• Hardware and community
• http://store.sony.com/p/NSZ-GS7/en/p/NSZGS7
• http://www.vizio.com/costar/overview
• http://www.gtvhacker.com/
Enlarge your screen
Matteo Bonifazi - Stefano Sanna
36. Contacts
• Matteo Bonifazi
• dekra06 AT gmail DOT com
• @mbonifazi
• Stefano Sanna
• gerdavax AT gmail DOT com
• @gerdavax
• http://www.gerdavax.it
• http://www.androidavanzato.it
Enlarge your screen
Matteo Bonifazi - Stefano Sanna