Android 7.0 Nougat introduces a variety of new features and capabilities for users and developers. In this article, we summarize what Google showed in version 7.0.
The user can open two apps on screen at the same time. On phones and tablets split screen allows run apps side-by-side or one-above-the-other. On Android TV apps can be places in picture-in-picture mode.
Note for developers:
- A user can resize apps by dragging the divider between them, you can set minimum size your activity (that in case resizing the application does not look ugly) or disable multi-window display for your app.
- A user can drag and drop content from one app to other, this is a good way to engage a user to share content from/to your app.
- Template updates
Simple to use may use with user image or avatar.
- Messaging style customization
The customizable user interfaces labels (configure message, conversion, title, content view).
- Bundled notifications
The system can group message together in the single group and user can interact with them (e.g. dismiss or archive).
- Direct reply
Options were already used in SMS, a user can direct reply to message without the open appropriate app, it is a good feature in realm-communication apps.
- Custom views
You can customize headers and actions.
- Template updates
Profile-guided JIT/AOT Compilation
JIT (Just in Time) – compiler with code profiling to ART, which improves performance apps as they run. JIT compiler complements ART’s current Ahead of Time (AOT) compiler.
Faster install and update apps
Quicker install apps and system updates (mainly because JIT compiler).
Google added lighter version Doze, that will activate when the screen is off and it is not on a charger, but it is moving. more
Background optimizations (project Svelte)
Minimalize use RAM by optimizing the way apps run in the background.
Better battery performance while displaying content stream (e.g. video or OpenGL scene) by using SurfaceView than with TextureView.
Data Saver is mode available in Settings to reduce cellular data. The system blocks background data usage and signals apps to use fewer data in the foreground (e.g. limiting bit rate for streaming, lower image quality).
New 3D rendering API rolled into Android 7.0DK.
Quick Settings Tile API
More space to add quick setting and for developers API which handles your own Quick Settings tile.
Support number blocking in the platform and API to maintain blocked number list. Your app can use this list.
Call screening is an option for your default dialer app. When a call arrives, you can tell your phone to do any of three things: reject the incoming call, prevent the number from showing up on the call log, and stop the dialer from showing a notification.
Multi-locale Support, More Languages
The user can select multiple locals and for instance result of the search can be in two languages. Android 7.0 expands the range od available languages.
Additional emojis and emoij-related features including skin tone emojis and support for variation selectors.
ICU4J APIs in Android
Now ICU4J is in Android, migrating by changing from com.java.icu to android.icu. ICU4J is the library providing Unicode and Globalization support.
Now WebView is rendered by Chrome, this approach improves memory usages. WebView is run in a separate sandboxed process if “Multiprocess WebView” is enabled in settings.
OpenGL™ ES 3.2 API
Framework interfaces and platform support for OpenGL ES 3.2
Android TV Recording
Android 7.0 introduced new recording APIs to record and playback content from Android TV.
Android for Work
The most important features introduced in Android for Work:
- Work profile security challenge
- Turn off work
- Always-on VPN
- Customized provisioning
Complete list of changes
Vision Settings directly on the Welcome screen for new device setup. Make sure your app is well prepared for changing accessibility for instance magnification gesture, font size, display size, and TalkBack. The new API allows building services with features such as face-tracking, eye-tracking, point scanning.
Android 7.0 runs in a secure, Direct Boot mode when the device has been powered on but the user has not unlocked the device. By default, apps do not run during Direct Boot mode. If your app needs to take action during Direct Boot mode, you can register app components that should be run during this mode. more
Key Attestation gives you more confidence that the keys you use in your app are stored in a device’s hardware-backed keystore. Note: Most numbers of devices support software-level key attestation. more
Network Security Config
These options provide apps customize their network security settings in a good place. more
Changed Default Trusted Certificate Authority
Now apps only trust system-provided certificates and no trust user-added Certificate Authorities (CA). If you want to add your own CA use Network Security Config.
APK Signature Scheme v2
“A new app-signing scheme that offers faster app install times and more protection against unauthorized alterations to APK files. By default, Android Studio 2.2 and the Android Plugin for Gradle 2.2 sign your app using both APK Signature Scheme v2 and the traditional signing scheme, which uses JAR signing.” more
Scoped Directory Access
In Android 7.0 use new APIs to request access to external storage directories. This process is very simplified. more
Keyboard Shortcuts Helper
The user can trigger a Keyboard Shortcuts screen that displays all available shortcuts from the system and from the app in focus. You can create your own fine-tuned shortcuts list.
Custom Pointer API
Android 7.0 introduces the Custom Pointer API, which lets you customize the appearance, visibility, and behavior of the pointer.
Sustained Performance API
Currently, only on Nexus 6P devices, this API optimize device performance during long-running apps.
In Android 7.0 was introduced platform support and optimizations for new VR Mode.
Print Service Enhancements
More information about individual printers and print jobs.
Frame Metrics API
Android Nougat introduced new Frame Metrics API that allows an app to monitor its IU rendering performance.
This concept resolves the problem from previous versions that files from cloud storage accounts have to direct bytecode representation.
This article is based mainly on official Android site for developers.