Google seems ready to try to take over the big screen again. Chromecast provides a unique way for developers to extend their apps with a second screen experience. This talk shows the inner bits and bolts of Chromecast and sheds light on Android’s deep connection with Chromecast.
Saturday, 17 May 2014
Presented at Android Developer Days 2014, Ankara, Turkey
9. Three Generations
1. Generation, late 2010
based on Android 3.2
2. Generation, Summer 2012
based on Android 3.2
3. Generation, 2013
probably on Android 4.2.2
10. GoogleTV: Pros
• Part of the Android-family.
• Deploying apps is easy™ (via Play Store)
• Re-use most of your existing Android code
11. GoogleTV: Cons
• Does not evolve as fast as mainline Android
• Not many devices sold (500,000 - 1,000,000)
• Late start in the European Union (2012)
15. ChromeCast: Hardware
• Model Number: H2G2-42
• It’s not based on ChromeOS
• It’s based on Android
and Chromium
• It’s not going to kill GoogleTV
http://www.ifixit.com/Teardown/Chromecast+Teardown/16069
16. ChromeCast: Pros
• Very cheap hardware (35$)
• Very easy to use (My Grandma can do it™)
• Web Developers can easily write „Receiver“-Apps
• Simple Protocol Stack
18. ChromeCast: Cons
• Google Cast SDK is still a Developer Preview
(read: things will break, things will change)
• You have to manually whitelist
all your apps with Google
• It’s not officially released outside the U.S.
Things have been broken. But the SDK is stable now.
19. WebTech
UDP
ChromeCast: Protocol Stack
• SSDP (Simple Service Discovery Protocol)
• DIAL (DIscovery And Launch)
• RAMP (Remote Application Media Protocol)
• HTML5 & JS (You know that this is)
• WebSockets (Bi-directional communication Browser<>WebApp)
• WebRTC (Web Real Time Communication)
20. TCP
WebTech
UDP
ChromeCast: New Protocol
• mDNS (Multicast Domain Name System, aka Bonjour)
• Protobuf over TLS Sockets
• RAMP (Remote Application Media Protocol)
• HTML5 & JS (You know that this is)
• WebSockets (Bi-directional communication Browser<>WebApp)
• WebRTC (Web Real Time Communication, ex. Screen Mirroring)
21. ChromeCast: How it works!
1. Advertises ChromeCast
using mDNS (UDP Broadcast)
!
2. Discovers Endpoints using mDNS
!
!
3. Requests App and opens
TLS Socket connection
!
!
!
4. CC fetches HTML5 based 1st
Screen App (opens WebSocket)
22. ChromeCast: How it works! II!
!
!
!
5. Sends request to play media
!
!
!
!
!
6. HTML5 app receives
media request (WebSocket)
starts fetching content.
!
!
!
!
!
!
7. Media is downloaded/streamed
by ChromeCast device
23. ChromeCast: Sender App
• Cast SDK available for
• You need to pay $5 to create an account
on the Google Cast Developer Console
29. CheapCast all the Droids
• Is an app that emulates a
ChromeCast (or Google Cast)
device on almost any Android
Device
• Implements DIAL, RAMP/WS
Proxy-ing
• Does not care if your id is
whitelisted or not.
• Written by me
31. CheapCast: Use Cases
• Start developing ChromeCast apps without owning
an actual ChromeCast Device
• Turn one of your old Android-devices into a
ChromeCast Dongle (connect via MHL<->HDMI)
• Cast content from your Android Smartphone
to your Android Tablet just for the hell of it.