MALE SPEAKER: Don't worry.
We're good?
Great.
Welcome back to Devoxx.
And we're here this time to talk about, well, I
think, Android, right?
ROMAIN GUY: Yes.
MALE SPEAKER: This is Romain.
This is Chet.
Or is it the other way around?
ROMAIN GUY: We're not sure anymore.
MALE SPEAKER: Yeah.
I'm not sure either.
So welcome guys, welcome back to Devoxx.
You've been here many years.
And this is the second time in a row that you're here
announcing, almost, the release of something,
following the release.
CHET HAASE: Maybe.
Maybe we try to time the platform releases with Devoxx.
Maybe more positive coincidence.
MALE SPEAKER: So it's Devoxx-driven development.
ROMAIN GUY: Yes.
That's a new process.
I think you're going to talk about it.
It's a new patterns.
CHET HAASE: There is a process talk tomorrow.
So maybe.
MALE SPEAKER: Yeah, make sure you
don't miss that one on Parlays.
It'll be on Parlays, right?
CHET HAASE: I hope so.
MALE SPEAKER: If it's good, only.
So it should be there.
So we're here to talk about Android 4.4.
That's KitKat, the KitKat release.
So we announced two things, obviously, the software, 4.4,
and some hardware, I think.
CHET HAASE: I think there's some new hardware-- oh wait, there's
some in my hand.
ROMAIN GUY: You happen to have it.
What a coincidence.
CHET HAASE: So this is an example of the Nexus 5.
This is the white model, white on black,
as well as the black on black.
Both colors.
MALE SPEAKER: OK, good.
Two colors available in a number of countries from day one?
ROMAIN GUY: Yes.
I don't remember which ones.
Many countries, not enough.
MALE SPEAKER: Not enough.
It's never enough.
CHET HAASE: I think the US, and the other ones
are a little more vague tome.
MALE SPEAKER: So there are a number
of European countries for those watching us
in Europe, certainly.
Anything you want to point out about the device
other than the fact that it runs KitKat
which we'll talk about in a second.
ROMAIN GUY: I love the screen.
The screen's amazing.
CHET HAASE: High resolution, fast, smooth, nice.
ROMAIN GUY: Yeah, the colors are really good.
And it's super fast, the device.
CHET HAASE: You just like the screen
because it has your wallpaper on it.
MALE SPEAKER: Great, so let's talk about KitKat 4.4.
Does the numbering, first of all,
mean anything in terms of how much features
went into this one?
CHET HAASE: It's actually exactly 0.1 better
than the previous release.
MALE SPEAKER: OK.
That's a good start.
CHET HAASE: I would say the distinction
on the dot releases, correct me if I'm wrong is, API bump.
So there could be some new APIs that you could take advantage
of.
If we're not changing the APIs, generally, we wouldn't do that.
It wouldn't be more like a maintenance release
on what we've previously done.
ROMAIN GUY: It's a question for marketing engineers.
We don't decide the version numbers.
MALE SPEAKER: All right.
Next question.
ROMAIN GUY: We just come up with features, and we fix bugs.
MALE SPEAKER: Good enough.
Good enough.
OK, fine, fair enough.
Animation framework.
Is that something new?
Now why even have something like that?
CHET HAASE: Users demand animations.
So it's been my personal goal to make animations almost
automatic, as far as they can be.
So I realize everybody likes to think about animations as
much as I do, but they probably don't have the time to.
So the more that we can do to make it easy for them,
I think the better the animations are
going to be in the applications.
So the main thing that we did this time--
we have all kinds of animation capabilities
already, but you have to write a fair amount of code
to get really good animations.
We made it easier to do transitional animations.
And in fact, the feature is called transitions.
And you can, basically, say start a transition now,
change your UI by inflating new layouts
or modifying the views that are there.
And, on the next frame, it will automatically
detect what the changes are in the UI
and run some sort of automatic image.
MALE SPEAKER: And that's an API, or is it declarative?
CHET HAASE: It's both.
You can declare resources where you
state this information ahead of time,
in addition to layout files.
Or you can, in your code, simply say, OK, change the UI
accordingly, call this method on the transition's interface.
So this is in the transition package.
ROMAIN GUY: You've basically programmed itself out
of your job.
CHET HAASE: It wasn't the intention,
but I'll have to see whether my badge works when I go home.
ROMAIN GUY: You should go talk to your manager
as well when you come back.
MALE SPEAKER: There was one neat feature that I found,
which is full screen, or there's probably
a better name for that.
ROMAIN GUY: The immersive mode.
MALE SPEAKER: Immersive mode.
OK.
ROMAIN GUY: So.
It's something that we had before.
So it's the ability to get rid of the system UI, the nav
bar, and the status bar.
So some apps, we're able to do it, video playback,
for instance.
But now it's open to all applications.
We're going to talk about it in details.
And I'll talk what's new in Android.
There's going to be some code.
It's very easy to use and makes a lot of sense
for games or immersive content like books, magazines,
things like that.
MALE SPEAKER: OK, great.
CHET HAASE: You can think of the main change
being that you can have a full screen application where
the user can actually interact with the application
while remaining full screen, as opposed to,
as soon as they tap, the bars come back in,
which was the previous behavior.
MALE SPEAKER: So how do I exit that mode?
ROMAIN GUY: You can swipe from the top or swipe
from the bottom, and you get the bars back.
MALE SPEAKER: Can my kids do that?
I hope they can't.
ROMAIN GUY: They can, but if they learn the gesture.
CHET HAASE: How smart are your kids?
MALE SPEAKER: Let's not get there.
Another thing I like, and we'll try
not to go through all the features.
And there'll be a great talk.
I'm sure you guys will deliver available on Parlays.
Another interesting feature is screen recording.
CHET HAASE: Yes.
Awesome for developers.
MALE SPEAKER: Because, I mean, it's great for you guys.
Probably, it's great for developers
for showcasing their apps on the store.
How does it work?
ROMAIN GUY: For the developer, it's
great both because they can showcase their app on websites.
They don't have to use the shaky cam version of recording.
It's also really useful for debugging.
You can go frame by frame in your video.
And you can see if there's a glitch, or performance issue,
you can see that.
That's actually how we did most of that.
So right now, there's a command line tool with ADB.
You type ADB shell screen record.
And you get to an MPEG-4.
Or from Android Studio, there's a new button.
In one click, you can record a video.
The only limitation right now is that you can only
record up to three minutes.
That's it.
MALE SPEAKER: OK.
Good.
But there's no triggering those directly from the phone
like you can take a screen shot?
ROMAIN GUY: Not at the moment.
MALE SPEAKER: Not yet.
OK, good.
Project Svelte?
CHET HAASE: Yes.
MALE SPEAKER: So you guys talked about Butter last year.
Butter was not good after all, and we need to go on a diet.
What's the deal there?
CHET HAASE: You know, all diets are in cycles anyway.
So a little too much Butter, a little more diet needed.
MALE SPEAKER: So this is about running on--
CHET HAASE: On lower end devices.
MALE SPEAKER: End devices.
So how do you define this?
CHET HAASE: 512 megabytes is what we aimed at
to run reasonably well on.
It turns out that there's still a bunch of devices
still coming out in the market new with older releases.
And the reason is because the newer releases simply
had too much memory footprint for them to run comfortably.
Not enough applications could run simultaneously.
So what we've done is slim down the entire platform
to make it easier to run more applications in only Svelte.
MALE SPEAKER: So how did you actually do that?
Is that at the OS level, at the app level,
everywhere you could shave off?
ROMAIN GUY: Everywhere it's new tools,
new APIs, lots of work in the OS itself.
So new kernel features.
A lot of changes in the framework.
We've also analyzed all the apps.
And the app developers worked great in optimizing
the applications.
So today, we gave a bunch of tips and tricks
on what you can do, what tools can you use in your apps,
and what you can do to use less memory yourself.
And it's very important because there are lot of users
out there with phones with-- it's still
a lot of memory, 512 megs of RAM.
You want as many apps as possible
to run at the same time.
MALE SPEAKER: Do you want to talk
about prog stats, enhancements?
And performance tools in general?
ROMAIN GUY: Yeah, so, I mean, we come up
with new tools in every release to help
the team itself optimize the platform.
And we make those tools available.
So everything we've used on Project Svelte and Project
Butter before that, those are tools
made available to developers in KitKat.
CHET HAASE: In fact, the tips that we talked
about in the session that we had earlier today,
it was tips for Android developers.
But they really came from our own experience.
It's the approaches that we use, the tools that we use,
and the optimizations that we implement
to make the platform smaller.
And maybe developers can think about the same things
to make their applications smaller as well.
MALE SPEAKER: Great.
Another new feature is printing support?
CHET HAASE: Yes, excellent.
MALE SPEAKER: Based on PDF.
So it's not just for printing.
It's also for generating PDFs.
ROMAIN GUY: That's actually the side effect
of adding support for printing.
You can generate PDFs.
MALE SPEAKER: Right.
Well, you can look at it both ways, I suppose.
ROMAIN GUY: Yeah.
But they are pretty independent.
So if your applications, if you want
to be able to export PDFs to just email them, or store them
somewhere else, you don't have to use the printing APIs.
MALE SPEAKER: So speaking of physical printers,
which ones can you print to?
What's the protocols you use?
ROMAIN GUY: So any Cloud Print enabled device.
So if you have Cloud Print on your desktop,
it's going to work with pretty much any printer.
If you have a Cloud Print enabled printer,
it works directly.
And you can also install plug-ins.
So on the Nexus 5, we ship with the HP plug-in.
So any HP printer or recent HP printer will work.
And I'm sure there'll be more plug-ins on the Play Store
very soon.
MALE SPEAKER: Right.
Awesome.
Storage Access Framework?
CHET HAASE: Yes, it's a concept of documents and sort
of unified access to different places where
you can store things.
So your application no longer needs
to figure out how do I access the area in SD card, where
I want to put it, or on the cloud.
Or if you're a service that provides storage,
like a Dropbox or whatever, out in the cloud,
you don't need to figure out how to expose that to users.
Instead, there's a unified way to both publish your storage
mechanism as well as for the user
to access the published storage mechanisms.
MALE SPEAKER: So yeah.
So it's good for providers as well as users.
It's like a modern version of an open dialogue and file
chooser, that type of thing?
ROMAIN GUY: That's exactly it.
MALE SPEAKER: OK cool.
ROMAIN GUY: It's document-oriented.
It's not file-oriented.
MALE SPEAKER: It's document-oriented.
OK, that works.
OK, the WebView.
The WebView is based on Chromium now.
ROMAIN GUY: Yeah, so big news.
Based on Chromium.
So brand new implementation, same APIs.
Some of them have been deprecated,
but it's a drop-in replacement.
Nothing to do in your apps.
It runs on Chromium.
MALE SPEAKER: You don't actually have a choice, right?
ROMAIN GUY: No, you don't have a choice.
Which is good because it does better HTML5 support.
The Chromium team is constantly working on improving things.
You also get remote debugging.
So for USB, you can use Chrome to remove
debug on the phone, which is really useful.
MALE SPEAKER: Cool.
So we had a lot of people trying it out and then having
some features, finding out new things they can do with it.
Because with Chromium comes support
for a set of new features around HTML5,
and they're all new apps that you can build.
ROMAIN GUY: So I haven't seen new apps taking advantage
of HTML5 yet, but I'm sure we'll see that coming very shortly.
MALE SPEAKER: Right, because this is where support for HTML5
will come, and in the browser and Android.
Let's see.
One more thing I had was SMS Provider.
ROMAIN GUY: So we've had an API.
It was a hidden API that a lot of people were using.
It was not enough show API.
So now we have enough show API to access the SMSs
on the phone.
And we have the concept of the default SMS application.
So only the default SMS application
as chosen by the user will be able to write to the SMS
database.
But now, at least we have show support for that.
But we let the user in control.
MALE SPEAKER: Great.
Two more things I want to cover before we close this.
One is tooling.
Can you say few words on Android Studio?
There's a lot of work going on on this.
And [INAUDIBLE] or Xavier are not here with us
at this conference.
CHET HAASE: Yeah, so on their behalf,
I'll talk about all the work that they've
done that I'm not aware of.
There's obviously work going on on the tools all the time
anyway.
But there's been a huge effort behind Android Studio.
It's still early release, beta release,
I forget what the official terminology is.
ROMAIN GUY: It's the Google I/O preview.
CHET HAASE: Strangely, 0.3.4 just came out this week.
And it provides one of the changes
is, there's some language level changes.
So you can now take advantage of things like strings and switch
statements--
MALE SPEAKER: I want to get to that, absolutely, yeah.
CHET HAASE: Diamond operators, the multi exception catch,
and the resource closing.
I forget.
ROMAIN GUY: To measure resource management.
CHET HAASE: So the cool thing about these language features
is that all of them, except the last one,
the resource management is they are available on any platform
release because the [INAUDIBLE] Compiler basically will just
compile it to whatever it needs to be.
It's kind of syntactic sugar, right?
The resource management is capability
of the platform you need to do target SDK.
MALE SPEAKER: Because there's an interface
you need to implement.
ROMAIN GUY: There's an interface.
MALE SPEAKER: So that was the, actually, last point
I want to get to is that you get all those language
evolution which, actually, a lot of them
do make sense for Android developers.
So there's multi-catch--
ROMAIN GUY: I'm pretty excited for those features.
MALE SPEAKER: Auto-closable is a pretty important one as well.
ROMAIN GUY: And download the features
too, divided support for drawable previews.
The integrated [INAUDIBLE] better.
So you can start screen recording from Android Studio
directly.
There's a new trace view UI that's
very similar to sys trace, [INAUDIBLE] to use.
I mean, they're coming out with new releases all the time.
And every time they do a pretty amazing job
at coming up with new features.
So yeah.
MALE SPEAKER: OK, great.
ROMAIN GUY: It's exciting.
MALE SPEAKER: Well, I guess guys,
that's all the time we have for it.
Thanks for showing up with our friend here.
And I think go get there, and then use those APIs,
and then provide feedback.
That's our call to action here.
ROMAIN GUY: Thanks.
CHET HAASE: Sounds good, thanks.
MALE SPEAKER: Thank you.