Google I/O 2014 – What’s New in Android (Full Transcript)

Whatever you have, you put in EXTRA_PEOPLE, and then system UI can take a look at that and say, hey, that involves somebody. I might want to boost that up. And the other stuff is still important. The timestamp, whether there’s a fullScreenIntent, priority, whether it makes noise, all these things are going to give the system UI new tools to be able to know what things are most important to show to the user first. Most importantly, though, for developers is to give that user that control. Let the user turn off notifications, let the user change the properties of notifications. You don’t want to run the risk of the user banning notifications using the system Settings app, a very popular feature that we introduced in Jellybean. And when you do give users choices about notifications, when you give the users that activity that lets them configure everything, put that activity into your manifest with the new intent category listed on the slide, NOTIFICATION_PREFERENCES.

And we will actually link to that notification preferences page right from system Settings. So if you go into Settings, Notifications, you’ll be able to jump straight into the apps that have notification preferences that the user can control. Briefly I want to mention that Wear is key to the notification story in L and vice versa. It’s very much like the L lock screen. It’s super glanceable, except with Wear it’s already out of your pocket. Your phone app’s notifications appear on wearables automatically. They get bridged there. You’ve seen this in the keynote.

You saw this as part of the Wear unveiling a couple months ago. Notification.WearableExtender is the place where all the APIs exist for you to customize the appearance of that notification specifically on the wearable device. Split it up into multiple pages, group notifications together, and things like that. And as you get into more advanced Wear development and you’re developing apps for Wear itself, to run on the watch, you’ll see that it uses notifications there, too.

In fact, the notification manager on the watch is the thing that manages those cards that you see in the wearable UI. So you’ll use the same old Notifications API to interact with Wear from on the wearable itself.

There are I/O sessions that you should definitely check out. Tomorrow at 10:00, the Android developers on the Wear team are going to take you through all these APIs in detail, and there’s an I/O Byte on YouTube about building these UIs as well. Okay, other important stuff.

Take it away, Chet.

Chet Haase: Okay, I took my breath. I’m back.

So other random stuff that we couldn’t actually find an appropriate bucket for. So here it is. ART, we heard about this in the keynote. You’ve heard about it before. It came out in KitKat as an optional run time, and now it is the runtime. I had thought previously, oh, it’s the one that’s enabled by default, and then I was corrected this week. It is the one.

In fact, Dalvik? What Dalvik? Everything is ART, and it’s a good thing. Faster runtime, the ability to actually pre-compile this stuff so that it’s running faster. A lot more intelligence going on in that runtime than we had before. And one of my favorites is the increased capabilities for garbage collection. So less frequent pauses and shorter durations of those pauses mean a better ability to actually hit your frame rate, particularly for animations.

If you had a GC pause of 10 milliseconds, which was sometimes common, unfortunately, in Dalvik, depending on what was going on in the system, that could just push you right over the boundary of a frame, and you’d skip a frame, and the user would see a hiccup in the animation.

Now if you have pause times of around 2 milliseconds, then it’s much more probable that you’re going to stay within that 16 millisecond boundary, and it’s not going to affect your frame rate or those animations. So faster, better, newer, cooler. Check it out, in particular go to the ART talk. That’s Thursday, tomorrow morning, at 10:00. And also, go to the Sandbox, and they’re giving an ongoing talk, GC and Jank in ART. Talk to them.

I think there’s also documentation that’s coming out on the web if it’s not there already. So lots of stuff to check out there. Oh, one of my favorite things too is the moving collector. The ability to actually move stuff around in the heap, which caused some of the delays that we saw before, that things couldn’t move. So then the heap would get fragmented, and then it got harder and harder to find space for things that you needed to newly allocate.

Well, now we can actually collect the heap and move stuff around when that app is backgrounded. So very powerful capability, linked with the ability to then take really large objects like bitmap and put those in a set aside space so that the really large objects aren’t taking up room in the common space where all the little tiny objects need to go.

ALSO READ:   Facebook’s CEO Mark Zuckerberg F8 2014 Keynote (Full Transcript)

5So that’s part of the reason why we have much smaller pause times for allocations as well as collections, because it’s much faster for us to find the space that we need when we actually need it.

Android TV?

Dan Sandler: There’s a great talk about this, let’s see when it is. That’s this afternoon. Yes, this afternoon. All about Android TV. There’s an I/O Byte on YouTube. The message from the Android TV team is this– you saw it in the keynote– there’s going to be one app. You’re going to produce one app, and it’s going to run great on every device that calls itself Android — phones, tablets, TVs.

When your app is ready for that 10 foot experience they talked about in the keynote, there’s an additional intent category you can toss into your manifest to move your app up so that it shows up on that main panel, that main rail inside the TV launcher UI. You can still launch your app if it’s not there, but when it’s ready for that TV experience, that’s how you move it up.

More info at

Chet Haase: Enterprise, the main thing I’d say here is go to the Sandbox and attend the talk on frameworks for enterprise and device management, and Ben will give you more information about what’s going on for enterprise. They talked about it a little bit, Sundar was talking about it in the keynote, about managed profiles, the ability to actually have your IT department, let’s say, in a BYOD world actually manage what’s on the device. And then this division between the device owner, the person actually using the device, and the profile owner, which might be the organization that that user is a part of. And the ability to do that in enterprises is increasingly important.

There’s new APIs in DevicePolicyManager that enable this, and there’s also an app that they’re working on for pre-L releases that will enable some of these capabilities as well.

Android tools. I spoke to one of the people on the Tools team and got the brief take on exactly what’s new and exciting in the tool space. And then I said, okay, great, I will talk about it in the session. He said, actually, we’re going to talk about it in Thursday’s so please don’t. So go to their session tomorrow at 9:00 and learn what’s new in tools.

Play Services. There’s an excellent session coming on this afternoon. So we have the Wear Data API, much more information about what’s going on there. Games, capabilities, the capabilities of Quests, as well as saved games in the cloud. So you can actually save your share state between devices much more easily.

New Drive capabilities, new Wallet capabilities, increased analytics for your apps. Much more that I didn’t want to get into this slide, and they can tell you much more about that at the session if you go there. And some other stuff that didn’t even fit into our other grab bag category.

Security. SELinux is now in enforcing mode. I would encourage you to go to the “Secure Development on Android” I/O Byte on YouTube and check that out. Get more information about that, as well as some other things in the encryption area that you can learn about. And also in the printing area, but I would say just in general, we have a new PdfRenderer capability that allows you to take PDFs and then render them as bitmaps. Very useful for printing, and we use it for the print preview, which is now part of the release. But you can use it in general if that’s a capability that you need in your application.

And most importantly, the preview SDK. What is it? When is it coming out? Tomorrow. So here’s some URLs., actually /preview is where you can get more information about the preview release, as well as download the bits for building against and download system images for Nexus 5 and 7 minimally. And that comes out tomorrow, so please get started developing today, or — yeah, there’s the links. Tomorrow. Yeah.

Developed for the preview release of L today, tomorrow. And in the meantime, go to all the I/O sessions, enjoy those, and the I/O Bytes online are being posted as of today. And please, if you have issues, please submit them. The sooner the better, because the sooner you submit them, the better chance we’re going to have of actually knowing about them in time to fix them for the full on L release.

Dan Sandler: And we ran out of time.

Chet Haase: We did run out of time.

Dan Sandler: We planned it perfectly. We have 17 seconds for Q&A. So actually, we’re going to take Q&A downstairs in the sandbox on the platform level of the second floor, right?

Chet Haase: Yes. We’ll be there right after this talk, and thanks for coming.



Leave a Reply