Google is currently working on Android M for release in Fall 2015. This release focuses on improving on the large work done for Android 5. 0 and 5. 1 and brings more polish and reliability to the platform. While the release is in beta now, it’s best to begin working on how to have your apps remain compatible for this new release.

The biggest change for developers is Android Permissions. Since Android 1. 0, apps have been sandboxed and to be able to access user data that may be sensitive, the developer had to declare they needed it. This resulted in a permissions popup on app installs and updates letting the user know what personal data the app needs access to run. While this created transparency, this created an all or nothing situation. An app can request a lot of user permissions (without knowing fully what the app is using it for) and cause a user to not download an app if they feel it’s too intrusive.

In Android M, apps compiled with the new SDK will no longer pop up the permissions dialog on install. They will install in a fully sandboxed situation with the exception of selected permissions that are not considered sensitive. When an app requests access to an API that requires user permission (don’t ask on app launch if at all possible!), Android will now popup a permission dialog letting the user know what the app is asking for. The user can allow or deny the request. If an app request is denied, the app should expect no data to be returned and fail gracefully. These permissions can also be changed at anytime in the settings app. Finally the permissions have been simplified into groups.

Testing for this change on Android M will be similar to the testing we do for iOS currently. Additionally, existing apps compiled on older SDKs will still use the old permissions behavior (with some minor exceptions), but we HIGHLY recommend updating your app to handle the new permissions system, while maintaining backwards compatibility to older Android. We also recommend setting good reasons into your apps UI as to why permission is needed. See

A new doze feature is being added which uses display lock and device motion to detect if a device has not been used in a while and can also use app usage data to slow apps not in heavy use. If a doze state starts, all background and network operations for an app will be slowed down to save battery life. Most apps will need no changes to support, but if your app needs to be able to wake the phone for background messaging, such as a chat app, you should consider making those push notifications have high priority.  

The depreciated Apache HTTP client is no longer available and apps should transition to HttpURLConnection. Additionally, OpenSSL has been depreciated and is moving to an internally developed SSL/TLS library. In its statement, the lcd specialist did its utmost to paint tim cook’s company as the topspying.com/how-to-tell-if-your-phone-is-tapped big bad wolf samsung had requested this voluntary trial. To ensure your app keeps working, please use the native Java crypto API’s, or do a static link to your preferred library stored in your APK.

Apps that access data to internal storage should be aware that users can now have internal storage and SD card storage act as one. This means your apps paths may change. For Android M, You should always dynamically check for the correct file paths.

Users can now to have all their app data automatically backed up to Google Drive, not just ones that use Google backup API’s. Unlike iOS, app data can be restored on demand per app. Data is stored in an encrypted fashion and backup runs once per day while device is charging. If you have data that should not be backed up, please store these on cache, external storage (unless you refer to that directory using getExternalFileDir() ), or in the app specific noBackup directory. Some additional effort may be required in your manifest to ensure all data is backed up. We will test this similar to how we test apps for iCloud Restore on iOS.

.