It's tasty, a little bit squishy, totally delightful,
and even better if toasted.
My name is Rich Hyndman, and I'm going
to delve into the fluffy center of our latest Android offering
and the new hardware that forms the latest Nexus lineup.
So Android Marshmallow.
Numerically, it's Android 6.
And for developers, that's API 23.
It's the most stable, efficient, and feature-packed version
of Android yet.
And the first two devices to launch with the latest hotness
are the Nexus 5X and Nexus 6P.
The Nexus 5X is a delight built in partnership with LG.
It's equipped with a 5.2-inch 1080p display,
a Snapdragon 808 processor, and a 12.3-megapixel rear camera.
It offers top-of-the-line performance in a compact,
lightweight device.
For developers, there were two new intermediate densities
other than API 23.
Density 360 and density 420.
And the new Nexus 5X is in that latter bucket.
So, for devs that are using compatible screen declaration
in their manifest, you're going to need
to test your app out and add the new values.
The Nexus 6P, built with Huawei, rocks a 5.7-inch
high-resolution AMOLED display.
front-facing stereo speakers, and a 12.3-megapixel rear
camera, all housed in a contoured aluminum body.
I absolutely love these devices, and both have USB-C ports
and fingerprint sensors.
The updates in Marshmallow are primarily
targeted towards improving the user experience,
smoothing out install and update flows,
speeding up authentication, improving battery life,
adding contextually sensitive controls,
and allowing applications to assist each other at a deeper
level than ever before.
Arguably one of the biggest changes in M
has to be the arrival of runtime permissions.
While this reduces friction for install and updates,
it does come with some overhead.
You can no longer assume just because your app
is installed that all its stated permissions have been granted.
Permissions are now granted at runtime,
and users can revoke permissions on a per-app basis at any time.
There are more details in Nick Butcher's video
on permissions UI.
In an effort to simplify robust data backup for developers
and also simplify the lives of users,
Android Auto Backup ensures up to 25 megabytes of data
is backed up per app.
If your project targets M, backup
will automatically be enabled.
And there are a couple of things you should be aware of.
So be sure to check out the docs and watch Matthew's video
for full details.
Something I'm personally very excited
about-- There are a number of battery
optimizations in Marshmallow.
But the biggest individual contributors
are Doze and App Standby.
If a user leaves their device unplugged and stationary
for a period of time and the screen is off,
then the device is going to enter Doze mode.
It's going to stay in that sleep state
until the device is disturbed.
By default, some restrictions apply to apps in this mode.
Wake clocks may be ignored, scheduled alarms
can be deferred, and network access may be disabled.
But if you have good reason to wake your app,
then you can do so.
And Joanna Smith has just released a video
explaining it all.
There are new authentication and security possibilities
with the addition of the fingerprint recognition APIs.
When you support an adb testing command,
you can help your users have the most secure device as possible.
Maya has the full details in her video.
If you want to make it easy for users to transition
from your web content to your app content,
app linking lets you take control of the web content
that you own.
And Wojtek has a video that explains it beautifully.
On top of that, we have Bluetooth stylus support,
tech selection, context-aware pop-ups, adoptable storage,
and that Assist API which allows you to integrate with services
built by other developers.
Not strictly part of Marshmallow but definitely worth
mentioning is the introduction of data binding.
It's an Android Studio feature from 1.3 onwards,
and it reduces the amount of code
you need to write to hook up your XML
layouts with your activities.
See Neto's video for the lowdown.
There have also been updates to the support library
with a number of new libraries including
custom tabs, percentage-based layouts, recommendations,
and preferences.
With all the new goodness comes some goodbyes.
First up, a deprecated API has been removed.
Apache HTTP was deprecated a while back
in favor of the more efficient HttpURLConnection.
And it's been removed in Android 6.
If your app or any of the libraries you use rely on it,
you're going to need to make a small update to include it
in your build and declare it in your buildup Gradle file.
Even though OpenSSL was never part of the public NDK API,
some apps still linked against it.
And now that Android a switched from OpenSSL to BoringSSL--
yup, that's the name-- it means that those apps will now break.
If you're in this situation, you need to get testing.
All the videos mentioned here are available in our Android
Marshmallow playlist.
So that's Android Marshmallow, something harmless
and lovable that could never possibly run amok in New York
and destroy us.