Duration 33:48
16+
Play
Video

What's new in Android development tools

Jamal Eason
Product Manager at Google
+ 1 speaker
  • Video
  • Table of contents
  • Video
2018 Google I/O
May 8, 2018, Mountain View, USA
2018 Google I/O
Video
What's new in Android development tools
Available
In cart
Free
Free
Free
Free
Free
Free
Add to favorites
40.2 K
I like 0
I dislike 0
Available
In cart
Free
Free
Free
Free
Free
Free
  • Description
  • Transcript
  • Discussion

About speakers

Jamal Eason
Product Manager at Google
Tor Norbye
Tech lead for Android Studio at Google

Jamal Eason is a product manager for Android developer tools & products at Google. He is responsible for setting the product roadmap and features that help Android developers make great apps. Prior to Google, he worked on developer tools at Intel, worked as a product manager at a mobile app startup, and was a telecommunications officer in the US Army. Jamal earned a bachelor's degree in computer science from the US Military Academy (West Point), a master’s degree from UMUC, and a MBA from Harvard Business S

View the profile

Tor Norbye is the tech lead for Android Studio, as well as the tooling efforts around Kotlin, and static analysis. Prior to joining Google in 2010 he worked for 14 years at Sun Microsystems, also on developer tools. He holds a master's degree in computer science from Stanford University.

View the profile

About the talk

An overview of all the recent features in Android Studio for Android app developers. The session will include demos and a tour de force presentation of relevant features that will accelerate developers' workflow on the latest Android APIs.

Share

Hi, welcome to what's new in Android development tools a project manager on the Android Deadpool steam Studio. So we're excited to show you some of the new features have been working on inside of Android Studio. As you know, Android Studio is the official ID for developing apps for Android before jumping in I just wanna spend a few moments, highly me some things you might have missed since you last spoke with you. So last year at IOP launch Android Studio 3.0 and that includes things like a new 4/4 profilers Colin language

support adaptive icons and a new Android emulator with Play Store integrated plus 20 new features. Earlier this year. We launched Android Studio 3.1. Let's talk about it. So Android Studio 3.1 with focused on performance and quality effects over 800 bugs and stability issues. 40% of our time was fix an issue supported by you. So thank you for your patience and feedback. Now we're still not done with quality. We we've heard loud and clear from you that performance and quality is essential to our continuing to invest in that but even with her

focus on Quality Inn and receive a different one a few bucks the pilot pass this it's a thank you for those who report this issue to us to allow us to fix those issues. Listen to Quality We Know That Built Me does also critical for you. So the inside of a deal to put one we worked on that. So for example when using V8 with the sugar integrated build speed improvements on full build without cashing Improvement. condition to build speed and quality in Anderson go to phone one we looked on a look on a few different new features

including Steve Wilkos dead and support this has Coke completion and project navigation from using either room database apis are in a single light the apis this should be a plus for you so last year we will announce Colin as a first class ticket on the platform and inside of Android CEO since that point we've been continuing to invest in the Copland so instead of Android 2.1 not only do Colin checks in the ID but also on the command line so if you do a lot of automation test with kotlin now you have that support built-in inside of Android Studio Now for

those of you who have C or C plus plus code here is also treat for you. We added a C plus plus CPU profiler and again allows you to drill into C plus plus code and understand the performance impact, of course that's on the unified timeline inside a performance profilers. And speaking of performance profile as we also updated the network profiler to know that many of you have multi-threaded Network threads in your app. So now you can look at each individual thread and see the performance of that aspect. And of course you can drill into the cul-de-sac and see down tree source code what's

happening? And of course with each person of Anderson. We tried think with the latest version of intelligent in there. So what am I in this version of intelligent his actions new feature called previewer was that as an importing and managing my scg assets and converting those two vectors Robles. It's your convenience field a double click back into the source asset to see the SVG file. And of course with answers to go to one, we also worked on to update for the Android emulator what the pain points we heard from you is that the emulator is

too slow to boot up this morning from staff keynote. We wean Abel's quick boot and crew food allows you to launch emulator and under 3 seconds, please do All right, so that means it's 2 today to talk about Android Studio 3.2. Dark Team Works closely with an Android framework and the Google engineering teams to ensure that all the latest Android Technologies and apis are kind of integrates accelerate your development flow. Sulfur example with Android Studio 3.2. You can test invalid

and integrate all the latest Android apis from the P developer preview. NFL now it's afternoon. We have a brand new app format called the Android app bundle. So the answer is to do a 3.2 you can build his bundle and and of course of time you can customize APK to user using Google Play is dynamic delivery system. And lastly Andrew studio is a major component of Android jetpack and again and libraries developer tools and a set of opinions and guidance help you quickly and easily scale make great apps for Android.

Now parentheses, we worked on a range of teachers across east of them. It's on your process since I be talking about eat individual teacher give us a demo for all the cool features of things you can do inside of and I'll come back and talk to the afterwards but that sort. All right, so it's my pleasure to show you all the new features that we have both over the last year. So the first thing you'll notice is that we have this new window on the right. I still watch new window. So in this window will be showing it to you once per release and what sort of highlighting the important things

for you to know came to some new features and not released. Look at 3 to the number. One thing that were profiling is the new Android app bundle support. So let's get right into that. So the key takeaway about a funnel decided let your package and upload your app in such a way that the Play Store can create many different versions of you have one for each combination of Chip architecture screen size and even look hell and that makes it download smaller, right? So in studio, all you have to do is rebuild your app. So if I go to our generate signed APK wizard, you can see

there's a new option is now for generating a app bundle. And here I can sign it and it's really important to understand that from Google Play to do this. It has to sign your app. So you have to give it to your encryption key to do that. So I'm going to choose to export encryption key at note also that it's not exclusive exporting it into the bundle. Okay. So to look at notification here from the bottom, right? There's a link that we got it so you can see where we stored that key. So you can upload it the UI needs a little work. So we'll we'll be able to eat that. So now that we've created

this wonderful we can take a look at it. So the a fake analyzer also works on bunch of files naturally. Make it look at this. It should look for look pretty familiar. So that I missed delivery is really really easy for you to do is basically, you know, upload your key and rebuild and that's in production today. We also are previewing Dynamic feature modules. And if you look carefully as my bundle file, there's actually the other thing called article composer that just happens to be a name I chose for the Namek feature in this app. Can compose articles, right? So, how did I do that? I went

to the new module menu. We have a dynamic feature module module type and here. Doesn't want to go. Okay here I basically get to choose the name of the feature. And also I have network issues. I've already created this module obviously since you see it in my bun to fall asleep me to show you how it's all wired together. So first, I have a new module where we applied this new special Gradle plugin for Namek features. We have a manifest in that module where I can basically said that I want this to be on demand and we want the place or defuse it so that it can build a p case for older

devices that don't support this and in our main app module we link to this then I make features. So creating a dynamic feature module is a lot more work for you. You're going to have to use the Play Coeur library to react to download inflation events, but it's really useful if you have some large functionality in your app. Not every user is going to want so you can have your bass off be small and then do the on-demand installation of these other features. One of the things we've added to the Run config dialogue is the ability for you to choose which features are included

when you are testing locally stuff. You'll need to use the play console testing track. All right, so that's let's take a look at the profiler. Swim several new features in the profiler. I'm going to open it up. And I have an app running. This is the plat app. So the first thing you notice in the bottom left here is we have a session to you. So you can record multiple profiling sessions and then you can go in and try to compare results. One thing. I'm already recorded earlier. It's a new feature

we've added which is systrace so systrace is this really powerful profiler looks at data from the colonel so I can see what's going on on different CPUs. There's thousands of tracing events from the current life being recorded. That's probably hard to see on the screen if there's a faint graduation of colors here to show you all these events now actually let me start these were all pre-recorded sessions. Let me know attached to the current running session. So here's our Telemetry View. Navigate me to the CPU

profiler. And let's say I'm interested in recording why MIUI is so slow when I click on this thumbnail on the right. Until now, what I would do is click on this recording at the trace button on the left and I would try to quickly press it after doing the action. We what I can do now is actually trigger it from code. So in three two, We have disability for you to call the debug method. This is a standard at the K method and her daughter West. Debug. So I'm telling it. I want to start method racing here at the beginning long create at the end.

I'm going to say stop at the tracing right. So now that I'm going to click on the you I take a look at what happens in the CPU View. She can see it captured exactly the range of codes that I'm interested in and I can now drill in figure out what's wrong with my layout insulation. So that's the CPU profiler. Let's move on to the network profiler. So mrs. Grow out of it. So Eskimo mention. We have two new features here. We have a threat to you so you can see which thread is doing what some random picture from the top. We are also showing requests

and responses for the network footballer. in the memory profiler our biggest new feature is the ability to show you j&i references and the allocation Trace from the day-night references and last but not least is our new energy profiler. Let me zoom out of it. So the energy profiler helps me figure out what's going on with my battery life. So if I take a look at earlier in the app here, you can see we have this Legend on top and it's showing me that I have fairly light CPU usage, but it's telling me if I'm touching the network if I'm

getting location requests if I'm running alarms and if I have wakelock if you see there's this big red bar on the bottom that's showing there's a wave lock in effect away clock means that the device cannot go to sleep this obviously really bad for battery life. Right? So let's look at this range and hear it actually shows me the real way clock names we can see our first wakelock was alive for about four seconds that's normal, but the second way clock Still under lease and going for 50 seconds. That's not good. So what I can do is click on that way clock and we drill down to where the way

clock was acquired because he obviously this is a bug I added this is not the flat asphalt. This is just to show the wakelock detector in the whole energy profiler is new entry to and hopefully very useful to you. All right, so that's it for the profiler. Let's talk about the emulator of it. Stop profiling. Alright, so here we are in the emulator. We have the new Snapchat but you saw earlier and we actually have a whole UI for this so I can see here that my quick boot obviously looks like the lock screen right? But I've also

recorded a session in the middle of searching a Google Maps so I can just click the snapshot press play and I am instantly in that exact date. I also recorded the snapshot while running the clock dog and if it has play a you can see it's instantly in that state 15 seconds into recording of the snapshot and recording a Snapchat is the simplest clicking to take snapshot while you're running your emulator and then you can bring it back you can see there's also a special quick boot snapshot right? That's the one that ended is going to come back into when you restart it. So if I exit emulator

right now And bring it back up. You should see that yes, you know, it comes back really quickly. We've added a few other features of the emulator. So by popular demand screen recording a lot if you wanted this this lets you record a video what's happening along with audio? And we also enhance the camera. So let me start the camera. Yes, yes. All right. So we done here is we are now feeding the camera and the emulator sensors, you know, the the fiction that you're in this 3D World here. So actually I'm going to have to hold all key so I can move around in this 3D scene and this is really

really important when you're building at a r house. And speaking of a r and we have some support back in the ID for that. So, let's see. This is a gltf file and we have a plug-in. settings we have this steam Forum plugin support About Steam from a volcano or plug-in which helps you preview your 3D models. So here's his gltf. I'll I can go in and import this as a steam form asset. We support gltf files to support obj file to support fbx files into when I run this

import. It's going to create a Gradle task for me, which is creating these sfasd files that is gorgeous in form. And then I can open my SFA file and the important part is that we have if you were so now I can explore what's going on in a 3D sense what this model is doing. So that's seen form. Let's switch gears a bit and talk about jetpack. So if you look at the package names in the editor here, you can see that we have ended up support. We have some before

somebody 7 these are super misleading version numbers right until we decided we need to clean up our Legacy of that until we are repackaging everything from Android to Port over to Android X and to help with that migration. We're providing all of our libraries in both the Old Navy base and the new slave named space for now as well as a automated your factoring tool. Let me see how that works. By the way this also applies to XML files for you have these class names and even real fast because we are also repackaging the group IDs and artifact IDs for these libraries. So

I go to refactor refactor Android X. It's going to look through the code. And it's going to offer to preview the changes. I'm feeling lucky. So you can see here. Actually, let me open up the gate View and I highly highly highly recommend that you all make backups and use Version Control both preferably before you do this so you can see that we've actually replaced a bunch of the code here and it should work but we are aware of some bugs already and seafood in Canary 14 any Canary 15, so we would really like you to try this and give us feedback on what's broken so

that we can make this working smoothly for everyone before 3 to go stable. All right. So jetpack is about a lot more than cleaning up Legacy code. We are adding a number of new libraries and one of the most important ones for the tools. Anyway is the navigation light. So the new navigation Library does require you to architecture app for the navigation library from the beginning. So this is not magically machine their intelligence figuring out which apps doing. Okay. This is a navigation graph. We have created for this app. So let

me show you how to get some Library works of the plumbing underneath the first so I have a launcher activity. I point that launcher activity to a sort of Route layout and in that lay out. All I do is I put a navigation. Fragment and this navigational suppose fragment will do the dynamic dispatching at run time. And then we pulled the navajos fragment to this navigation resource file. That's a new resource type that we voted for this Pacific library. Now, we're looking back at navigation resource file. It's just an XML file that we have a nice

visualizer for it. Let me actually go ahead and run the app. So if you look carefully you can see that near my the mouse pointer is a little home icon that tells me that this page is the start the start destination in the app. I can just go to the title screen instead and click on set start destination and when I run again You'll see that now the App instead starts on the title screen. I didn't change the launcher activity or anything else. All I changed was the navigation route. So that sells than a fragment where to begin.

Write the next I'm going to click the play button and it does nothing. Why is that? Well, the play button is just a buck name is lay out, right so I can look at this layout. There are two arrows coming out of it. Right the first one on top here past the action play that's one of the things you want to navigate when the action play happens. We wanted to go to this page when the action leaderboard happens. We went over here. Let's go take a look at the code. So I'm going to drill into the layout. I just double-clicking. So here's our button and I'm going to jump to the on click Handler for that

button. It's called on clay and I'm going to uncomment this code. What we doing here is we're fighting an app controller that's on the navigation library. And this is Colin. So we have an extension method right there on the view. But if you could just call the navigation helper, so we get the controller. We say navigate to the action play. Alright, then. I'm going to deploy that to the app. And once that gets there I can now press play and you can see it goes where we want so I can now go back into the navigation screen and its stead of

jumping. When I press play instead of jumping to the register thing. I'm going to have it jump over to our in-game screen instead. So I'll just make that change notice. The code doesn't change the code assess take the play-action right? So now when I press play it said to go right into the game, right so that the routing table is here. Nothing we can do is to select this transition and say you know what? I like an animation on this transition. So I'm going to choose the rotate to cross to take animation. And again, I'm going to deploy that to the device.

And when I press play now look at the screen, you can see it rotates, right? So there's a lot of features in the navigator that I'm not getting into for example passing arguments in a safe way from one screen to another or nesting graph on the show one last thing. Deep links. So I'm going to press the plus button here to create a deep link and let's pretend for a moment that I own the google.com domain. So if I look at the Manifest file here all I've done in the Manifest its register my activity with a launcher intent and also I reference in a graph but now it's

emerged manifest, right? This is what we compute on the fly when you build them Elsa computer and IDE, obviously, if you look at the bottom here, we create intent filters for you that are handling this deep link, right? So you just put the replay. Can I file and now your Apple respond to do planks? Classon Avenue, which is new in 3.2 I talked about the layout of the dirt for a bit. So as you can see you get this nice graphical view of the app for the reason that works is that we have a highly visual app here, right? So you can

receive from the outline what it looks like. Lucky but what really helps is you can add sample data to your app. We've have the plumbing for sample diet for quite a while. But in this release made it a lot easier to use the first of all I can go over in the property sheet and you can see next to the text property. We have this design time property. I'm going to bring up the customizer and here I can explore all the different sample data types. We have so high for this one. I'm going to choose a full name. I can also select a

widget in the design surface. And if you look carefully whenever you select something there for buttons under it, right the fourth icon is a wrench that means design time after boots, right so I can click on that and I can also set design to match between here and the reason it's important to know about that trick is that it's particularly useful with let me open up a blank layout. and dragged in a recyclerview And that looks really unimpressive. Right? This is what you get with the respective you but now noticed that we have our wrench again. So I'm going to

press it. This is our design time Helper and for list using recycled use we offered to customize the item list layouts for you. So if I press next I can cycle through various list item layouts here. So we create one that looks sort of email list like one liners to liners 3 liners. We even have grid so helpers should help you make your layouts look better from the Nevada Craigslist. Are the last thing I'll mention on the layout editor is that we also have some support for material theming so here's a pretend

compost window in an email out. So we have the new chip widgets. We have the bottom nav layout you can see the foot. This would have rounded curb and everything. I've shown you so far is in anesthesia 3.2. Now, I'm going to give you a sneak preview of a feature For an upcoming release might not even be three three. Tell me to open up a new layout for that. And the problem is trying to solve is making animation easier. So what I have here is a subclass I think of constraintlayout its

next-generation constraintlayout, which lets you do motion so I can select my widget and it has to constrain steps. So in the beginning it's attached to bottom left at the end. It's attached bottom. Right right so I can play and you can see we can animate between these two constraints apt turn on motion passed so we can see what's going on. So now we can see where this thing is going to go. Now. The important part is I can go in and add keyframes. So I'll add a Cartesian position

keyframe and I will know can drive it over here for example, and I'll add one more keyframe to rotate. So we'll set a random attributes. Actually, I want to do it somewhere else. So it's more obvious, so I'll a day. New keyframe out over here. So, let's see new attributes. And I have to select it. And then we will say rotation should be at 45 is a good default. So you can see now when I'm dragging through you can see both rotates and and shift and y-coordinates and the real power here is when we start combining these right so here is a more

complicated animation demo. You can see here. Let me get make the timeline of its bigger here. We have a number of things happening. So at the beginning we have a number widgets at the end. You can see we moved the motion layout, faded out the Google Cast icon. We made the header smaller so you can see as I'm pulling through. You know, we get pretty fancy effect and this Library also let you respond to touch events, which makes it a lot easier to to use. So that's no promises. I'm going to be done but you know where we're very excited about this

and then working hard on it. So now So now if we can switch to the other demo machine for a second. All right. So what you're looking at here is a pixel Chromebook and the really exciting part for us is that if I click on this button down here you can see we have Android Studio running on it. Yeah. So we have you know, we have layout editor we have kotlin code building works a lot of stuff work, but if that don't work, so there is no beer yet. So you can't

run deploy to bug, you know, you can upload straight to the Play Store and hope for the best anyway, so I think at this point you still need to sort of tinker and be very comfortable with Linux, but it's a very exciting development. I think so, you know, I look forward to that getting done and with that. Starting could work. All right. So so tour custom on all the visual changes making Android Studio has been a little bit of time talking about some changes to the bill

system that you might want to be aware of inside of Android Studio 3.2. And the biggest changes made is supporting the Android app bundle. Would you heard about earlier this afternoon? We have a new little drop them in the united. We can create a bundle and find a bundle. If you want a little bit more control. We actually added some additional flag inside your bill. Grado file and so ends the temperature on the screen here I have flights rap slides flights, right? All right. All right. So

I'll answer Frances have a split on density screen density ABI and language to fight but you can configure to have some control with actually inside your bundle. All right connections Android apps for factoring. So tour give you an example of how it works inside the ID. And again with that happens when the build system perspective is that we will convert your legacy Maven dependencies and convert them. What's the new address namespace LoCash those and use those for subsequent bills? Now again, if you want a little bit more control

what happens to real properties of a few things be added to your rental properties file. And so this example of how the enable. Enable Jennifer set the true as the default Behavior again what that does to texture LinkedIn, even the artifacts and converts those to the new X-Men space and cash at those for do bills have a brand new project is already converted to answer texts. I don't need this stuff. So in that case you can actually change this like the false and we can skip the stuff and what that with you is actually maybe they have faster speeds when working with Android X Alright,

lastly d8 an R8 Cydia is a new default Dexter inside of Android Studio last year. And now it's a default replacement for Dex has new it is a new Optimizer and shrinker inside the build tools chain, and it's a long-term strategies replace proguard with R8. So again, but right now all I have to do is go to rebuild an able set the true experimental. So we do not recommend her up in the PlayStore just yet. However, please go shorty back and let us know how it's working for you and will let you know when

I become stable inside of Android Studio. All right. So that was just a few things to talk about in the Android built system. If you want even more in-depth session, we have a whole session for tomorrow called what's new with the Android built system presented by Jerome and zav are also check out. best practices when using compilers in Android Studio prisoner by Jeffree. We have a few more classes as well on Android Studio with one more called. Improve a performance with Anderson. Her profile is presented by Esteban. That's also this week. And lastly we have a class on what's new with

constraintlayout in the Android studio design tools for sale by Nicholas and Andrew Co interior design tool sing. Aren't we don't talk about one last topic. It's about feedback for Android Studio as many of you know, you really standard Studio on a series released channels ranging from Canary betta and stable now Canary is are bleeding edge release Channel 4. We have most of the new work but a little bit of testing if we're goes out to you and then the other stable which receives the most amount of feedback and testing on our end before it goes out to you. They may sit here. Like

I can't rely on Canary. I need to tell my production code on stable. If you didn't know you next year on Canary and see what the same time on the app project that one important detail shop feedback. The thing is the early raciti bekijken are channel. The higher chance. It is actually for us to fix it. So thing is once we reach stable with Android Studio, it's almost too late for us to fix things are only as she was honestly if you wait until the very end of the beta's that's almost too late as well. So we really encourage you to do the download Android studio and the canary Channel and give it

to you back sooner than later. All right to recap answers to do it has a range of cool features across multiple loads of government flow from Envoy with Android jetpack building at bundle testing in snapshots an understanding the battery impact of your other app with the new energy profiler. From and of course it ever give you a sneak peek of the new motion editor and some Cool Tools. Ron are developments and also some cool demos of Chrome OS support for Android Studio. We hope you enjoy this video as much as we do. Right one little bit of feedback on the session. So please go

to google.com / Iowa scheduled to give us some feedback. All right, that's it. Again. I'm Jamal and sister. Thank you for dinner session on Wednesday whenever Studio.

Cackle comments for the website

Buy this talk

Access to the talk “What's new in Android development tools”
Available
In cart
Free
Free
Free
Free
Free
Free

Access to all the recordings of the event

Get access to all videos “2018 Google I/O”
Available
In cart
Free
Free
Free
Free
Free
Free
Ticket

Interested in topic “Software development”?

You might be interested in videos from this event

September 28, 2018
Moscow
16
159
app store, apps, development, google play, mobile, soft

Similar talks

Shahid Hussain
Product Manager at Google
+ 2 speakers
Stefan Kuhne
Tech Lead at Google
+ 2 speakers
Emilie Roberts
Partner Developer Advocate at Google
+ 2 speakers
Available
In cart
Free
Free
Free
Free
Free
Free
Dave Burke
Software Engineer at Google
+ 6 speakers
Romain Guy
Senior Staff Software Engineer at Google
+ 6 speakers
Chet Haase
Leads the Android Toolkit team at Google
+ 6 speakers
Dianne Hackborn
Product Manager at Google
+ 6 speakers
Aurash Mahbod
Director of Engineering at Google
+ 6 speakers
Tor Norbye
Tech lead for Android Studio at Google
+ 6 speakers
Stephanie Saad
Software Engineer at Google
+ 6 speakers
Available
In cart
Free
Free
Free
Free
Free
Free
Serge Beauchamp
Software Engineer at Google
+ 3 speakers
Mike Davis
Engineering Manager at Google
+ 3 speakers
Nicholas Lativy
Software Engineer at Google
+ 3 speakers
Radha Narayan
Software Engineer at Google
+ 3 speakers
Available
In cart
Free
Free
Free
Free
Free
Free

Buy this video

Video

Access to the talk “What's new in Android development tools”
Available
In cart
Free
Free
Free
Free
Free
Free

Conference Cast

With ConferenceCast.tv, you get access to our library of the world's best conference talks.

Conference Cast
558 conferences
22059 speakers
8245 hours of content