Well, Google I/O has been over for a week now, I'm just now finding the time to watch the keynote. Lots of great announcements for Android development in general, but here are some highlights of what to expect with Android M.
As of now, the permissions we developers ask for in our Apps, are presented to the user during installation. The user must agree to the complete list of permissions we request, or they wont be able to complete the install. Permissions in Android M will be handled differently. The user will not be prompted to accept all permissions during install. Instead, when the user attempts to use a feature in the application that requires permission, they will be prompted to accept, or simply not use that feature. Not only will the user be able to grant permission, but also revoke permission through the App Manager in Settings. Legacy applications targeting API's prior to "M", will behave has they always have (prompt during install).
A new power management feature called Doze, will monitor your devices sensors for inactivity, and use fewer background services while Dozing. Providing the potential for 2x the battery life. Android M will also support USB Type-C.
Chrome Custom Tabs
When the need to display web content in our App arises, we currently have 2 options. Send the user out of your App, into their default browser, or implement a Webview. Chrome Custom Tabs allow the developer to skin the tab so it will look like the rest of your App, and prefetch web content so it will be ready before the user launches the tab. Since this is actually Chrome running, and not a Webview, all accounts that have been setup in chrome will be available in the Custom Tab.
Pay will use NFC and a Virtual Card Number to complete a pay transaction, never passing your actual card number on to the merchant. A new Finger print scanner API will allow for quick payments without launching an App, just unlock your phone with your finger print, tap and go. Pay will be available in thousands of retailers when released.