Google has released Android 11 as a preview for developers. The goals of doing this are to enable developers in adapting their apps to the upcoming Android release, and also for them to provide early feedback to help Google improve the release robustness. Android 11 includes many behavioural changes that could affect existing apps, as well as new feature and API and new privacy options.
Android 11 will support a number of new APIs for media management, connectivity, data sharing, machine learning, and more.
The MediaStore API supports the performance of batch operation on media files, including granting write access to files, creating "favorite" files, and trashing files or deleting them immediately. Apps can also use raw paths to access files in order to simplify working with third-party libraries. To improve debug performance, developers can load GLES and Vulkan graphics layers into native application code.
The new ResourceLoader
and ResourceProvider
APIs enable apps to extend the way resources are searched and loaded. This is intended for custom asset loading, e.g. using a specific directory instead of the application APK. Additionally, C/C++ developers will be able to decode images directly using the NDK ImageDecoder
API.
Machine learning support is another area where Android 11 brings new features, specifically adding support for TensorFlow Lite's new quantization scheme, new ML controls for QoS, and streamlined data management across components to reduce data redundancy. Biometrics support is also extended with the new `BiometricManager.Authenticators interface.
Android 11 also introduces several changes to privacy, which include scoped storage enforcement, background location access, and a new one-time permission model that should make it easier for users to grant access to location, microphone, and camera in a single step.
All privacy changes listed above affect existing apps, and Google explicitly requires developers to check that their apps are compatible with this. But Android 11 introduces several other behavioural changes that could have an impact on existing apps. For example, the JobScheduler
API enforces now call limits to identify potential performance issues; furthermore, when the user denies twice a spcecific permission, then the OS assumes that means "don't ask again"; and last but not least, the ACTION_MANAGE_OVERLAY_PERMISSION
now always brings up the top-level Settings screen, whereas it used to bring the user to an app-specific screen.
The number of changes brought by Android 11 is too long to be fully covered here, so do not miss the official documentation for full detail. Also keep in mind that Android 11 development is not complete yet, and Google plans to share new preview versions over the coming months.