[MUSIC PLAYING]
CHET HAASE: Hi.
Welcome to "Now in Android" episode number 20.
So you remember last time, we didn't have that much content?
It was because the entire team was really busy
producing content that just came out for this episode.
We were working on launch content.
We were working on content for 11 Weeks in Android.
We're spinning up a bunch of online community events.
Tons of stuff going on-- let me talk about it really,
really quickly.
First of all, Android 11 beta launched.
It was a quiet launch.
It's basically a series of videos,
so the best way to check out the content for the launch
is to go to the playlist on the Android Developers channel
on YouTube.
There are 14 videos posted there with all kinds of deep dives
into the features of Android 11, as well as
information about Android Studio, Jetpack Compose, what's
new in Jetpack, Google Play, all kinds of information there.
So go check those out.
And of course, download and play with the beta.
So 11 Weeks of Android I have talked about before,
and now they're here.
So it started last week.
First week was people and identity.
And what's going on every week-- we're
focusing on a specific content area.
Last week, people.
This week, machine learning.
Next week, privacy, and on and on through the next 11 weeks.
And it's 11 because Android 11, so 11 weeks--
you get it.
Anyway, people and identity.
The best way to check out the content
is there's a blog posted on the Android Developers Blog that
summarizes all the information you need to know,
as well as has links to all of the content
that we posted last week.
Same thing will be true for machine
learning, but not quite yet.
We wait until the end of the week to post that blog.
In the meantime, you can always follow
what's going on by following the @AndroidDevelopers
Twitter handle, where they post all the content as it
goes along.
And next week, as I said, is about privacy and security.
I'm probably not supposed to talk about that.
All right.
Android 11 Meetups.
So we are working with our communities, our GDG
communities, to host these online events
throughout the world throughout this summer.
This started about a week and a half ago.
I called into an Istanbul event with Murat Yener,
and Yigit Boyar.
And then a few days later, I called
in with them again, as well as Romain Guy,
to an event in Bangalore.
And in fact, in about 10 minutes,
I'm calling into an event in Berlin, and on and on it goes.
So check out the Android 11 Meetups
page linked in the article and see
what is coming to a town and location near you,
and tune into these events.
We're talking about Android 11.
We're talking about some of the privacy changes in the release.
We're talking about modern Android developments.
And there's more content besides all of that.
AndroidX had many, many releases, as it normally does.
Let me focus on just a few.
First of all, in the alpha area, we
had a bunch of releases that just came out.
The first one I want to call your attention to
is Hilt. Yes, alpha, but not really, actually.
This alpha version, or this first version, which is 1.0,
is coming from an internal version
that is production quality.
It is not alpha.
It's version 2.38 that ships with Dagger.
That is why we're saying, this is the recommended approach
for doing dependency injection on Android.
Even though it looks like an alpha release in AndroidX,
that's because it just made it to the AndroidX namespace
and there may be some API changes as we get feedback
from you as you use it.
So we do encourage you to use it, give us feedback,
and we will continue developing and approaching stable with it.
Besides Hilt, we have Paging 3.
This is a complete rewrite of the Paging
library, which is about paging data into RecyclerView.
This is a rewrite entirely in Kotlin
using coroutines and Flow, which is pretty nice
because the entire library-- the functionality
is built around this asynchronous behavior
of streaming data into this list.
So check that out for all you Kotlin developers out there.
Easier to use.
Room 2.3.0.
This version of Room is mainly bug fixes,
but it also syncs to the changes in Paging 3.
So if you're looking at the Paging 3 library,
also look at this version of Room.
Benchmarking 1.1.0.
We actually talked to the engineering team
about the earlier version of Benchmarking
a while ago in the "ADB" podcast episode number 121.
It's all about being able to measure and log
the performance of your code, even
setting up a CI system based on performance regressions.
This new version adds allocation metrics, as well as
integration with the profiling tool in Android Studio.
It's easier to set things up.
And of course, there's a lot of bug fixes.
Core 1.5.0 syncs with new APIs in Android 11,
like ShortcutInfo and Notifications.
Security Crypto 1.1, in addition to other changes and bug fixes,
now supports all the way back to API level 21, Lollipop.
Also in AndroidX is the stable version, 1.2.5, of Fragment.
Mainly bug fixes, including some backports
of fixes that are currently going into the non-stable 1.3
release.
Sample code.
So IOSched is an application that we write on the Developer
Relations team to show developers
how to write production apps.
In particular, it exists for two reasons.
One is it is a scheduling app for the conferences
that we host, Google I/O as well as Android Developers Summit.
But it is also the place that we integrate code for new features
into production applications so we can sort of show
how to use this kind of approach in a real world situation,
as opposed to just a sample of small demo sample.
So the first reason for IOSched went away this year
since we didn't have Google I/O, but the second reason
is still there.
So we completed work for what we had planned for IOSched
for the year, and we've just posted the code on GitHub,
so check that out.
The latest version integrates use of Benchmarking,
as well as ViewPager2 libraries, as well as Hilt.
So if you want to see Hilt being used in a real world situation,
check out IOSched.
There were a lot of articles and videos posted in addition
to the ones that came out for the 11 Weeks in Android
that I talked about earlier.
First of all, "Dependency Injection on Android with Hilt"
is an article that was posted by Manuel Vivo showing how
to use Hilt, so check that out.
"What's New in Jetpack" is an article
posted by Florina Muntenescu.
She sort of started from where Yigit's video was working.
So Yigit did a launch video for the Android 11 launch
called "What's New in Jetpack," and he
talked about things like Hilt, as well as Paging 3 and some
of the higher level newer things going on there.
This article goes way beyond that and talks about those,
as well as more information on Autofill,
SeekableAnimatedVectorDrawable, using the Database Inspector
in Android Studio, and on and on and on.
So go check out this article to learn
what is going on in the latest versions of all the Jetpack
libraries.
"Debugging in Android Studio" is another article
that's based on another video.
So there was a presentation at the Android Developers Summit
last fall by the Android Studio team.
David Herman took the information from that session
and put it into a very long article with lots
of really great tips and screenshots
showing you how to use this stuff in Android Studio.
I learned a ton from reading this.
I think others will, as well.
Things like setting up filters for logcat
so you can see only the information you want instead
of the rest of that stuff that gets in the way,
attaching the debugger to a running application
instead of always starting it from scratch in the debugger
and then getting to where you need to be in the app, lots
and lots of tips on breakpoints that are important,
stacktrace analysis to nail down which parts of the code
are actually coming from your code
and are the problem you're looking for,
and many, many more tips.
So check that out.
"What's New in System Trace" is an article posted by Yi Yang
that talks about the System Trace tool in Android Studio.
System Trace is based on an internal tool
that we had that we then exported externally,
as well, called systrace.
This came from the Jellybean days
when we were working on performance,
really smoothing out the entire system,
and it was important to know what
was going on, not just in the threads in your application,
but also the system overall.
Like how did this event in your application line
up with another event going on with CPU frequency or something
going on in SurfaceFlinger.
So the Android Studio team took the core
of that systrace capability and they put it in Android Studio.
They simplified it a lot to make it more usable.
The problem with systrace was it was really complicated to use.
So they simplified and made the UI a lot easier to use,
but there are a couple of differences between that
and the other systrace tool, one of them
being the fact that it is actually easier
to use and capture data there and it's
integrated in the tool.
And the other important difference
is it doesn't have information on all
of the processes in the system.
Instead, it focuses primarily on your running application,
as well as the SurfaceFlinger process,
because that is really linked to what is possibly
going on with performance bottlenecks
and rendering in your code.
So check out the article and also check out the tool.
"Reification" was an article that was posted last time.
I talked about it in the last "Now in Android.
And now Murat Yener has also posted
a video version of that same information
so you can look at that.
There are a couple of new docs landing pages
that are worth checking out.
One is the landing page for Jetpack
that explains what we mean by Jetpack and links
to important information, resources
for the various libraries you probably
want to know more about.
And modern Android development-- it's a phrase
that we've used for a while.
This landing page helps explain what we mean by this,
and again, has links to important information
in that area-- things like the tools that we're talking about,
or some of the Google Play technology
that's part of modern Android development, or the APIs,
like the architecture component stuff,
or Kotlin language learning resources, as well.
And finally, of course, there were
a couple more podcasts posted on the "ADB" podcast.
So most recently was ADB 142, "Machine Learning Learning."
Tor and I talked with Hoi Lam and Matej Pfajfar
about machine learning-- lots of things in machine learning.
We talked to them about Ml Kit, about TensorFlow Lite,
about transfer learning, federated learning, ML models,
and the Android NN API--
Neural Network API.
My favorite part of that podcast was
being able to ask the engineering team,
what is the difference between all these things?
We have all these different names
for a machine learning technology
that we necessarily use and get involved in when we write
Android applications using ML.
So what's the difference between--
what are we doing with TensorFlow Lite versus ML Kit,
and how does that compare to NN API?
So listen to the podcast and learn more, like I did.
ADB 141, from the previous episode,
discussing conversation.
So the episode before that, we had talked to Mady and Artur
on the system UI team about bubbles,
about propagating information with people conversations
into the bubbles in the UI, and this
is another element of that.
It's about propagating information from these people
conversations into the notification
panel, this new feature that we have in Android 11.
So we talk with Julia Reynolds and Stefan Franks
from the system UI team about how all this stuff works
and how you can use it.
So as usual, all of the information I talked about
is linked in the article.
So if you want to check out any of this information,
go take a look at the article and click on the links.
And if you liked the video, please like, and share,
and subscribe to the Android Developers channel on YouTube.
Thanks.
[MUSIC PLAYING]