[MUSIC PLAYING]
SASCHA PRUETER: Hey, everyone.
Wow.
[APPLAUSE]
Didn't do anything.
Already got applause.
It's a pretty good start.
AUDIENCE: [INAUDIBLE]
SASCHA PRUETER: [LAUGHS] I see a lot of familiar faces.
But the stage is getting bigger every year.
So hey, my name is Sascha Prueter.
I'm on the product team for Android TV.
BENJAMIN BAXTER: I'm Benjamin Baxter, DevRel for Android TV.
SASCHA PRUETER: And thanks for joining the Android TV
session at Google I/O. The session is called What's New,
but we're also talking a little bit what
has happened in the last year.
So thanks for joining.
And yeah, let's get going.
So last time most of us talked was last year at Google I/O.
And the Android TV ecosystem since then
has grown significantly.
And we are, obviously, really happy about that.
So we have now more than 100 partners
working with us on Android TV devices.
And as you can see, we are doubling that, so far,
every year.
And as you can see, the growth comes
from a number of devices and device categories.
We have-- maybe you heard at CES earlier this year--
a bunch of new partners in very different smart TV price
categories launching Android TV devices.
So we are in the very lucky position
that we can't even list all partners on one slide anymore.
So if you're here, if you're working
with us on Android TV devices and your logo is not here,
sorry.
We are running out of space.
But also in the set-top box space,
and specifically when it comes to pay TV operators,
we see significant growth.
And we're very happy about that.
So we already have, I think, around 30 partners worldwide--
so pay TV operators, cable, satellite, IPTV, shipping boxes
with Android TV.
And we have more than 50 additional ones coming.
So we are really happy.
And we see good growth there.
But it's not only about hardware,
it's also about software.
And that's why I'm really happy that the TV app ecosystem is
growing significantly as well.
And I think this is the fifth time I said significantly,
so I will stop doing that.
But all of you are contributing to apps.
Having developers here at I/O over the last few years
actually pick up Android TV and build cool media experiences,
games or completely new stuff we didn't think about,
is really awesome.
When we started the TV Play Store,
I think, in 2014, we had 25 apps or so.
Now we are approaching 4,000.
And the thing, because there are a lot of app developers here,
we wanted to mention, because it's
a little bit under the radar, we have also
launched DCB on Android TV.
A lot of you, if you're developing for mobile,
you know direct carrier billing already on mobile.
So if someone buys an app, if someone does an in-app purchase
or buys a cool new car in a game,
you can charge it to your mobile bill in a lot of cases,
if you don't have a credit card or you don't
want to use the credit card.
And the same concept has launched also since last Google
I/O on Android TV.
And we're working with more and more partners, pay TV operator
partners, that you can do charges from the Play Store
or the Play ecosystem in general to your cable,
or satellite, or TV subscription bill.
But then also, one of the things we
have started putting more emphasis on
is the Google Assistant.
You heard us briefly talking last year
at Google I/O about this.
And since then, the ecosystem and the services
that the Google Assistant brings to Android TV have--
not only to Android TV, but to devices in general--
has grown.
So we see a lot of use of the Assistant on TV.
We think it's a great additional tool
to make use and consumption of media services and apps
a lot easier on TV by just interacting with voice--
discovering content by simply talking to your TV,
having a very natural interface, not having to remember,
what was that search phrase again?
Just natural.
And it's easy, and it works.
But it's not only about finding content,
it's also about looking up answers to questions
you might be interested in.
It might be who that actor is.
Or it's also control of other devices in your house.
The Assistant on Android TV gives you all of that.
And so because we think it is so important,
we are this year putting a lot of priority
on getting the Assistant into more countries.
We want to make sure we do it right,
so we don't want to rush anything.
But since we have launched in the US in late 2017,
we are [? bringing ?] this year, as you can see,
a lot more countries into the Assistant
ecosystem on Android TV.
But even if you are in a country or a language that is not yet
Assistant enabled and you have to wait a little bit,
we refresh our voice search experience
even in those countries.
So I mentioned earlier that we are
really happy about all the apps and more and more apps
in the Play Store.
And we, last year here at Google I/O,
gave you a little bit of a sneak peek of the new Android TV home
experience, and the system UI, and how
apps can integrate with that.
Back then, it was a sneak peek.
It was a preview.
It has launched with Android Oreo.
And we now have a lot of partners starting to roll this
out to Android TV devices.
So we thought it's a good opportunity
to go into more detail how your apps can actually
take advantage of this content first experience
that we are trying to achieve with Android TV.
And Ben is going to talk a little bit
about what it actually means to have a content first app.
BENJAMIN BAXTER: Thanks, Sascha.
So we really wanted to redefine this experience,
wanted to be very content first, content-driven.
If you're familiar with the previous screen,
we have one row for recommendations, a double row
for apps, double row for games.
We've changed that, as you can clearly see.
So apps are still important.
We have one row for apps.
It's just your favorite apps.
Your users can customize and add your app to this row.
It's up to the user's discretion.
That recommendation row from Android N and below,
we've broken it up into several different responsibilities.
So we have a Play Next row where you can add content.
And we'll talk more about this later,
but you can add content to be picked back and engaged
with the user later.
The next thing we did was we broke out--
and each app can have their own channel.
They can have their own surface on the home screen.
We're trying to really push this content first design.
And every app can contribute to it.
As Sascha mentioned earlier with the Assistant,
the Assistant is also on the home screen.
It's not specific to Android O or Android P.
It's actually supported from Android M and above.
So this is here to enhance search and keep pushing
that content first design.
OK.
I keep saying content first.
It's like my favorite phrase all of a sudden.
But let's look at some really good examples
before we dive into the technical details about what
builds a content first design.
So here, we have Google Play Movies.
And this is from the home screen.
And you can see everything about their details.
It's as if the movie detail screen
is right there on the home screen to help build and engage
an experience.
This is great for users.
They don't have to go into the app and hop back out.
They can make decisions right there from the home screen.
If we take it a step further, we have video previews.
So if you have a movie, a trailer
makes a great video preview.
If you're an audio app, 10-second clip
is a great audio preview.
We've found that having previews is
very engaging for users and drives engagement
into your app.
I said earlier about the Play Next row.
This is a great place for you to add
content to bring users back in.
If you're watching a really long movie,
you add a little bit extra metadata,
we'll make a beautiful progress indicator to add more context.
And the users are able to hop back into the app.
And I said channels.
You're not just limited to one little row in the home screen,
you can have as many channels as you want.
If we look here, we have channels like Featured,
Top Free.
These are great channels that you know are going to be fresh.
These have indications of being updated daily, even hourly.
OK.
So now that we have a nice context about what's
on the home screen, let's dive into how you guys can
build this experience.
So what is a channel?
A channel is just a logo and a name.
That's all it is.
It's a container for programs.
This is going to be where you theme
your content and customize everything deeper
in the programs.
To build a channel, we have a support library.
It just uses the builder pattern.
Super easy, super convenient for you.
Everything on the home screen should be clickable.
So if you click on a logo, it should open back into your app.
So just set the App Link URI, and this
will let you open up your app from the home screen.
The next thing that's important is the internal provider ID.
This is an ID for your app to tell the home screen, hey, keep
track of this.
I know what this ID is.
And when I go to query my channel later,
I can synchronize my channel with what the home screen knows
about my app.
And that's it.
It uses a content provider.
And we have convenient methods.
For those of you that know the joys of content providers,
you know that there can be boilerplate code.
We've abstracted all of that into the support library.
And we make it really easy for you to build a content provider
API.
Those also familiar with content providers
know that URIs are kind of tedious and cumbersome
to manage.
The support library manages all of that for you.
It's just a simple insert statement,
and you get back a channel ID.
Like I said earlier with internal provider ID,
you can use the channel ID and the internal provider
ID to make sure, when you synchronize
and update your channels later, you'll
have all the keys you need.
OK, channels, like I said, they're just a shell of a row.
The programs are what really matter.
So let's look at an example of a program.
In this program, we have a bunch of stuff happening.
We have a thumbnail image.
We have a title, a description.
And anything else you know about this program
can be added to the home screen.
The more metadata you add, the richer the experience,
the better the user engagement.
So anything that's in your Details page,
it's perfectly natural to put on a home screen.
Again, builder pattern.
This time, you want to set the channel ID on your program
so the home screen knows where to put it on the home screen.
And if your program has more than one channel it can be in,
make sure to add a unique identifier.
The home screen will look at this identifier and say, hey,
we already know about this program on this channel.
And it's also on this channel.
We can have deduping logic so that the user
doesn't see duplicates and adds a cleaner, smoother experience.
You also want to set the type.
In this example, we set the type to MOVIE.
But the type will drive the metadata that's
shown on the home screen.
And I showed you with Red Bull earlier, video previews.
It's as simple as just adding a URI.
So you just say, hey, my video preview's at
https//www.myvideo.com.
And the home screen will play the video for you.
It uses ExoPlayer under the covers.
So all of the supported video formats from ExoPlayer are
supported for you out-of-the-box.
If you have DRM or you have a bit more complex use case,
we do support a solution where you can
draw your video on a surface.
Come see us in Office Hours tomorrow,
and we can go in more depth about that.
This looks very similar to channels.
You know, you convert them to content values.
And then from your content values, you'll need the URI.
The URI is dynamic, since you're trying
to insert a program into a specific channel,
so use the support library.
After you insert, you'll get back a program ID.
Now your program is in the channel,
and you have a program ID, and you have a channel ID.
You have all the tools you need for synchronizing, updating,
and deleting later, when you go to update your content.
OK, I told you how to make the channel.
Just use the builder pattern, add it to the content provider.
But when do you make it?
When is very important.
We put a lot of time trying to figure out
how to get you started.
And so we ended up with a new intent.
So there's INITIALIZE_PROGRAMS that will get triggered.
And this can happen before your app
starts, which isn't a bad idea.
Your app just gets downloaded onto a TV, or it gets updated.
And all of a sudden, you have content on the home screen.
Great entry way for users to come into your app.
So just listen for this INITIALIZE_PROGRAMS,
and just set up your channels and start your process.
OK, the last thing we talked about was the Google Assistant.
I think the Google Assistant is a pretty fantastic experience.
It pushes that content first approach even further.
Things you can do to integrate the Google Assistant
is to implement search, support deep links,
and handle playback controls.
So let's look further.
When you perform a search with the Google Assistant,
the Google Assistant keeps this content first design--
search for my favorite movie, "Big Buck Bunny."
Hope it's your favorite too.
And you'll see a bunch of information-- the thumbnail,
the description, the title.
And if your app matches, you know,
if it matches on the title, duration, year, at the minimum,
with the metadata returned, it will show up
in the list of apps that it's available on.
How do you match this?
What happens under the covers?
We use more content providers.
This time, your app is providing data to the Google Assistant.
The Google Assistant will just pass a URI for you
to perform your search on.
In this content provider, you can do whatever you want--
local database calls, network calls.
Whatever you need to do to perform your search,
you can do it.
This URI contains the raw search string
from the Google Assistant, but it will be sanitized.
So if you say something like, play "Big Buck Bunny,"
it's going to send you "Big Buck Bunny"
and realize that Play is a command.
So just be cognizant that the URI you get
is going to be the key for what you should search for.
OK, controlling playback-- if you guys
are familiar with Media Session, you don't have to do anything.
Your app already supports it.
But we'll just take a closer look.
If you want to support the Google Assistant
and do different commands while watching shows, for example,
hey, Google, pause the movie, in your app,
you just implement Media Session,
supply a callback with this function onPause or onPlay.
And the Google Assistant will trigger that
through Media Session.
onPause, onPlay-- yeah, you can just hit the Pause/Play button
on the remote.
Maybe not the most useful feature, but it's there.
And it's actually a really cool experience.
My favorite one is onSeekTo.
You just say, hey, Google, fast forward five minutes.
And the Google Assistant actually does the math
and says, hey, your Media Session has a state.
I know the current position in that state.
You said, fast forward five minutes.
That's 300 seconds, so I'm going to send the new position
to your app.
If you're familiar with Media Session,
you know that there's onRewind and onFastForward.
You should still implement those methods.
But the Google Assistant ignores those
since it already does the math to figure out
where to send the user to.
This next one is more useful for audio apps
more so than video apps.
But if you say, hey, Google, play the next song,
or OK Google, go back and play the previous song,
all you have to do is just implement onSkipToNext
and onSkipToPrevious.
So to recap, what are some of the best practices on the home
screen?
You should listen for INITIALIZE_PROGRAMS.
This is the gateway for creating your programs
and building that experience on the home screen.
When it comes to metadata, you cannot have enough.
The more metadata you add, the richer
the experience, the better engagement from users.
Keeping on that theme of engagement, add previews.
It's going to really drive engagement and build
a nice experience for users.
Keeping content fresh-- if you have stale content,
you might lose trust with users.
If you have a channel on the home screen
and you haven't updated it in a year-- you know,
once the user watches all those programs,
they don't have too much of a reason to go back in.
So you want to keep that content fresh.
And that depends on your app.
If you're an app like YouTube or Haystack
and you have user curated content,
maybe update every couple of hours.
If you're an app like Google Play movies
where the content's already controlled,
maybe update once a day or twice a week or so.
The goal is to keep the content fresh so users have something
to engage with everyday.
And when it comes to the assistant,
the Media Session is your friend.
Anything you want to do with Google Assistant,
Media Session is the key.
The good news is, all of this stuff, you can do today.
It's live on Android O. And I'm going
to turn it back over to Sascha to talk about things
you guys can do in the future.
Thank you very much.
[APPLAUSE]
SASCHA PRUETER: Thanks.
Thanks, Ben.
It's interesting to see also the different reactions
in the audience, like some people taking notes, and taking
photos, and discussing the code slides,
and other people like, dude, just launch some devices.
So we'll talk a little bit more about what's new.
You heard this morning already from Dave Burke and some others
what's the new stuff on Android P. And of course,
Android TV will also get some new additions in Android P.
So I will only highlight a few areas we're investing in.
One is definitely performance.
We have done a lot of work in Android P
to actually make Android TV perform better, faster, even
on entry level hardware.
So even on some of the very affordable smart TVs you might
have seen or set-top boxes, we want
to make sure everything's zippy, its fast.
And we have invested a lot in that in Android P.
And as a developer, some things to take a look at
is think about your app and your app behavior.
Is there maybe something, like some animation, some feature,
you might want to disable or tweak on low memory devices?
We see that's one of the most common problems for some apps
on entry level hardware.
So take a look at the isLowRamDevice
and tune your app behavior to that.
Play around a little bit with it.
Maybe it's some tweaks to animations.
Or maybe on certain devices, disable
animations or take a look at certain features.
Also, use the Memory Profiler to really check your app profile
and see where it might run into some bottlenecks,
because we see that still being some of the most
common behaviors that an app suddenly has a drop in FPS.
And also, then, use Android Vitals
to monitor the performance of your application.
But again, you should see Android P on Android TV devices
perform much faster, much better.
And we will see more devices because of the reduced hardware
envelope.
But we also obviously wanted to update some things for users
and make it even easier to get to a fully set up Android TV
experience.
I mean, let's be honest.
Not everyone enjoys necessarily setting up a new device.
And we wanted to make the whole experience
from un-boxing the device to have everything readily set up
be a lot easier, faster.
And you don't have to deal a lot with it.
So in Android P, the whole set up process
is a lot more streamlined.
I think we reduced the overall time
it takes you to go through there by almost a third.
And we also have some additional cues in there
where the phone integration is better.
If you have an Android phone, you
will get setup notifications so you
can transfer account details.
For example, your Google account,
you can easily transfer that to the TV.
Also, we have improved the browser sign-in
for non-Android devices.
So iOS devices or maybe a laptop, we improved that a lot.
It's a lot faster.
It's a lot easier.
And so we should get you through setup a lot easier.
But that's only setting up the device with your account
and making sure all the settings work.
What you also want on a smart TV or an OTT box,
you also want all your apps, right?
You want all the content.
So as part of the setup process, we also
have the next generation of Play Auto Installs.
And we already recommend you apps
that you have installed on other Android TV devices,
on past Android TV devices, or maybe on your phone,
if a corresponding TV app exists.
So we automatically suggest that to you
as part of the setup flow.
And you can select there, yes, I want all these apps.
Or maybe say, oh, I want only a few of them.
Just a few clicks, check boxes, you say go,
and everything is being downloaded and installed
automatically.
No more manual search in the Play
Store after you have set up a new device.
But downloading and installing an app
is only one piece that we wanted to optimize.
What's also not a great experience is going into an app
and then discovering that you have to sign in with a username
and password and having to awkwardly enter
that with your remote control.
And so that's why we're introducing also Autofill
with Google on Android TV.
So if you have ever entered your credentials
on one of these apps on another Android device,
we're automatically suggesting those to you.
Just say, yes, and all the login credentials are being added.
You're logging in automatically, without entering any usernames
or passwords.
So that's setup.
But also, one of the areas where we saw a lot of users
spend a lot of time in searching for stuff and, obviously,
not really enjoying it, is settings, right?
Sometimes, you need to tweak stuff,
or you have skipped a certain setup step when setting up
your new device, or you want to change your audio settings,
or add a different account, or something like this.
And we have revamped settings on Android TV
to be a lot more streamlined, a lot less cluttered.
And we will automatically suggest to you settings
we think you are looking for.
And for example, when you skipped account log-in,
we, as you see in the animation here,
will already highlight that.
Or when we saw you tweak around with some apps,
and something wasn't right, and you go into Settings,
we will maybe highlight the app setting for you.
We want to make it as easy to quickly get
in, get the stuff tweaked you need, and get out again.
So there was a lot about Android P. You can download the Android
P preview SDK.
And you can play around also with the TV emulator
and try it out.
There are some other neat things in there,
for example, external camera support.
So you could start writing camera apps for TV
if you want to.
So you can start playing around with it.
We're also going to release a lot more documentation
around the performance aspects of TV apps in the near future,
but we wanted to talk about two more things.
I mean, we talked a lot about software so far,
but we also thought about what are cool hardware experience,
what are cool devices that could expand
the experience in the living room?
And one of the questions we ask ourselves
is, how would a really cool living room
experience with a device being the center, the hub
of the living room with Assistant integrated, very
easy to use, controlling all my other devices,
and bring me the best Android TV experience onto my TV screen--
how would something like that look like?
And the outcome of that, the answer to that
was something like this.
[VIDEO PLAYBACK]
[MUSIC PLAYING]
- Hey, Google.
Turn on the TV.
- Hey, Google.
Play the Clemson football game on ESPN.
- OK, what's it called again?
Curiosity?
Opportunity?
- Hey, Google.
What's the new "Star Trek" show?
- Here is some information about "Star Trek, Discovery."
- Discovery.
- Hey, Google.
Show me potato battery videos on YouTube Kids.
- All right.
Here's potato battery videos on YouTube Kids.
[CHEERING]
- Hey, Google.
How long is college football overtime?
- According to Wikipedia, it is commonly 10 minutes long.
- This is good.
- This is really good.
- Hey, Google.
Buy more kettle corn.
- Here's what I found on Google Express.
- I meant the show.
- I know.
- Hold up.
Hey, Google.
Dim the lights, turn off the TV, and play some music on Pandora.
[MUSIC PLAYING]
- Ooh.
[END PLAYBACK]
[APPLAUSE]
SASCHA PRUETER: So as you might have seen already,
starting yesterday on some media outlets,
we announced, together with our partner JBL,
the JBL Link Bar, powered by Android TV.
It's an awesome sound bar.
It has Google Assistant integrated.
And because we put farfield microphones into the device,
you don't even need to pick up the remote control.
You just sit on the sofa, start talking to the device,
and can control the whole experience.
It has really awesome sound.
There will be an optional subwoofer
that you can order with it as well.
And what I think a really cool feature
is are the three HDMI-ins.
And you might think, well, why is that so cool?
You really can control your whole home entertainment
experience with this.
Because a lot of you might have actually--
well, you might have a Playstation or an Xbox, right?
Or you might still have that Blu-ray player,
or whatever other, or maybe that cable set-top
box you still really like.
So you can connect all these devices to the JBL Link Bar,
and then use the Assistant to control--
for example, you want to switch to the Playstation,
and it just magically happens.
And also, if-- let's say you're playing
a game on the Playstation, and then you
have a question for the Assistant.
You just ask the Assistant, and the Assistant can answer,
can show you the answer cards over your current HDMI input.
So it's not just a pass-through HDMI.
These are active inputs.
And it really shows you the power
of the Assistant and Android TV as a living room platform.
And the other cool thing here is that we're
working to get this into a speaker-only mode as well.
Because sometimes, you don't need the TV screen, right?
To listen to audio, to listen to music,
to maybe just ask something, really,
turning this down into a very low key smart speaker
is also cool.
So this device can do all of those things.
And maybe sometimes you just want
to send some music via Bluetooth or a cast audio to the device.
Works as well.
It's your one-stop shop for the living room.
You can control everything.
It's super easy.
It will also come with a remote control.
But if you prefer to just use it with voice,
well, it is really easy.
You should check it out.
We have it in our Android TV sandbox here in sandbox C.
And ask some of the folks from the team to give you a demo.
It's really cool.
It sounds good.
And it will launch in fall 2018.
So I said two more things, right?
So one other thing.
We talked a lot about Android P earlier.
And as a developer, you want to follow all the things Ben just
told you.
And you might ask, yeah, you told me
I can download the Android P SDK, preview SDK, and work
with the emulator, but I really would
like to have actual hardware for this.
So I don't know who of you was around
at Google I/O 2014 at Moscone Center in-- oh, lots of hands.
OK.
Some of you were already in Moscone in 2014.
And they might remember we launched a device back then
to introduce Android TV.
It was called the ADT-1.
[APPLAUSE]
So we thought-- well, you can applaud if you want--
but we thought it's time for another developer device.
So we are introducing ADT-2.
[APPLAUSE]
So you might want to write down that sign-up form link,
because you're the first people to actually see this and be
able to sign up for this.
All the smartphones.
It's actually a pretty good test for Google Lens, the actual--
BENJAMIN BAXTER: Oh, yeah.
SASCHA PRUETER: Anyway--
BENJAMIN BAXTER: If they go to the sandbox
later and check out the sound bar and you [INAUDIBLE],,
you'll also get an email with this link as well.
SASCHA PRUETER: Yep.
Good point.
So this is a neat little HDMI dongle.
It will come with a BTLE-enabled--
sorry, a voice-enabled remote control.
So you can try out all the Assistant integration tips
that Ben just talked about.
It will run an Android P developer preview release.
We will send updates to the device.
By the way, we're also sending updates to the sound bar.
Google, the Android TV Team will send the system updates
and new Android versions right through the device.
And so you can use this device to try out all the cool things.
It's a limited edition device, so you know about it first.
Sign up.
We will actually start to send this out later this summer.
And it's a neat little device.
We are actually really excited about it.
And sign up for it.
And build cool apps.
That's kind of it, already.
I said two more things.
It was two more things.
BENJAMIN BAXTER: Right.
SASCHA PRUETER: We have--
if you're working on apps, we have
some more interesting events that you
might be interested in.
Ben, I don't know if you want to mention--
BENJAMIN BAXTER: Yeah.
Come visit us in Office Hours.
We have back-to-back app reviews in Office Hours.
We're going to be, down the road a little bit,
where the Office Hours tent is.
If you have questions, come bring them.
If you're bored and you still want to do TV stuff,
we have two new code labs in the Code Lab section.
One focuses on just the Play Next row,
and the other one focuses on an overview of the entire home
screen.
We look forward to seeing you, and bring your questions there.
SASCHA PRUETER: Yep.
And talking about questions, well, obviously, we
want feedback from you.
But also, if you have questions--
you see those microphones?
We're not using them because of timing.
We will get shuffled out here very soon.
But Ben and I will be over right after this talk in the Android
TV sandbox.
Come over, talk to us, ask us questions.
And I will most likely point to Ben to answer those questions.
Thank you, very much.
Build cool TV apps.
And I hope we'll see you next year.
BENJAMIN BAXTER: Thank you.
[APPLAUSE]
[MUSIC PLAYING]