Are you ready for an in-depth look at Android 7.0?

Are you ready for an in-depth look at Android 7.0?

On August 22, 2016, Google officially pushed the official version of Android 7.0 Nougat. They will also push the development version every three months. According to the leaked information, the first development version is Android 7.1. Android N mainly adds the following new features and optimizations.

1. New Notification

Android N adds many new notifications APIs, redesigns them, and introduces new styles.

● Template updates: Developers will be able to take full advantage of new templates with only minor code adjustments.

● Message Style Customization: You can customize more UI labels related to notifications using MessageStyle class. You can configure the message, conversation title and content view.

● Bundled notifications: The system can group messages together (for example, by message subject) and display the group. The user can take appropriate actions such as Dismiss or Archive.

● Direct reply: For instant messaging apps, Android supports inline replies so users can quickly respond to text messages directly from within the notification interface.

● Custom Views: Two new APIs allow you to take full advantage of system decorations, such as notification titles and actions, when using custom views in notifications.

2.Multi-window support (split screen mode)

On phones and tablets running Android N, users can run two apps side by side, or one app on top of another in split-screen mode. Users can resize apps by dragging the divider between them. On Android TV devices, apps can put themselves in picture-in-picture mode, allowing them to continue displaying content while users browse or interact with other apps.

3. Quick Settings Tile API

Quick Settings is usually used to display key settings and actions directly from the notification shade, which is very simple. In Android N, the scope of Quick Settings has been expanded to make it more useful and convenient. More space has been added for additional Quick Settings tiles, and users can access them by swiping left or right across the paginated display area. It also gives users control over which Quick Settings tiles are displayed and where they are displayed - users can add or move tiles by dragging and dropping them.

For developers, Android N also adds a new API that lets you define your own Quick Settings tiles, giving users easy access to key controls and actions in your app.

4. Quick application installation path

One of the most practical benefits of the JIT compiler for Android runtime components is the speed of app installation and system updates. Even large apps that took minutes to optimize and install in Android 6.0 now install in just seconds. System updates are also faster because the optimization step is omitted.

5. Low power mode anytime, anywhere

In Android N, Doze goes a step further to save power on the go. Whenever the screen is off for a period of time and the device is not plugged into a power source, Doze applies familiar CPU and network limits to apps. This means users can save power even when their device is in their pocket.

6. Project Svelte: Background Optimization

Project Svelte continues to improve the way that apps use less RAM than they actually do in Android N. In Android N, Project Svelte focuses on optimizing the way apps run in the background.

Background processing is an important part of most apps. When done right, it enables a great user experience—immediate, fast, and context-aware. When done wrong, background processing can consume RAM and battery unnecessarily while impacting system performance for other apps.

Android N removes three implicit broadcasts (CONNECTIVITY_ACTION, ACTION_NEW_PICTURE, and ACTION_NEW_VIDEO) to help optimize memory usage and battery consumption. This change is necessary because implicit broadcasts frequently launch apps that have registered to listen for these broadcasts in the background, and removing these broadcasts can significantly improve device performance and user experience.

Mobile devices experience frequent connectivity changes, such as switching between Wi-Fi and mobile data. Apps can now monitor these changes by registering a receiver in the app manifest file to listen for the implicit CONNECTIVITY_ACTION broadcast. Because many apps register to receive this broadcast, a single network switch causes all apps to wake up and handle the broadcast at the same time. Similarly, apps can register to receive implicit ACTION_NEW_PICTURE and ACTION_NEW_VIDEO broadcasts from other apps, such as the camera. When the user takes a picture with the camera app, these apps are woken up to handle the broadcast.

To mitigate these issues, Android N applies the following optimizations:

1. Apps developed for Android N will not receive CONNECTIVITY_ACTION broadcasts, even if they have manifest entries to request notifications of these events. Apps running in the foreground can still listen for CONNECTIVITY_CHANGE in the main thread if they use BroadcastReceiver to request notifications.

2. Apps cannot send or receive ACTION_NEW_PICTURE and ACTION_NEW_VIDEO broadcasts. This optimization affects all apps, not just those targeting Android N.

Future versions of Android may also deprecate other implicit broadcasts and unbound background services. For this reason, avoid or remove dependencies on receivers declared in the manifest to listen for implicit broadcasts, and avoid or remove dependencies on background services.

The Android framework provides a variety of solutions to reduce the need for these implicit broadcasts or background services. For example, the JobScheduler API provides a robust and reliable mechanism to schedule network operations to be performed when specified conditions are met (such as connecting to an unmetered network). You can even use JobScheduler to respond to changes in content providers.

7.Data Saver

Over the life of a mobile device, the cost of a cellular data plan often exceeds the cost of the device itself. For many users, cellular data is an expensive resource that they want to conserve.

Android N introduces Data Saver mode, a new system service that helps reduce the cellular data used by apps, whether you're roaming, near the end of your bill cycle, or using a small prepaid data package. Data Saver gives users control over how apps use cellular data, while letting developers offer more efficient services when Data Saver is turned on.

Vulkan API

Android N integrates a new 3D rendering API, Vulkan™, into the platform. Like OpenGL™ ES, Vulkan is an open standard for 3D graphics and rendering maintained by the Khronos Group.

Vulkan is designed from the ground up to minimize CPU overhead in the driver and give applications more direct control over GPU operations. Vulkan also allows multiple threads to perform work, such as command buffer construction, simultaneously for better parallelization.

Vulkan development tools and libraries are rolled into the Android NDK. They include:

● Head

● Validation layer (debug library)

● SPIR-V shader compiler

● SPIR-V runtime shader compilation library

● Vulkan is only available as an app on devices with Vulkan hardware enabled, such as Nexus 5X, Nexus 6P, and Nexus Player.

9. Number blocking

Android N now supports number blocking in the platform, providing a framework API that allows service providers to maintain a list of blocked numbers. The default SMS app, default phone app, and provider apps can read and write to the blocked number list, but other apps cannot access this list.

10. Call Filter

Android N allows the default phone app to screen incoming calls. The way the phone app does this is by implementing the new CallScreeningService, which allows the phone app to perform a number of actions based on the incoming call's Call.Details, such as:

● Reject call

● Do not allow incoming calls to reach the call log

● Do not display incoming call notifications to users

11.Multi-region setting support, multi-language

Android N now allows users to select multiple locales in settings to better support bilingual use cases. Apps can use the new API to get the user's selected locale and then provide a more mature user experience for multi-locale users, such as showing search results in multiple languages ​​and not translating web pages in a language that the user understands.

In addition to multi-locale support, Android N also expands the range of languages ​​available to users. It offers more than 25 variants for common languages, such as English, Spanish, French, and Arabic. It also adds partial support for more than 100 new languages.

An application can get the list of locales set by the user by calling LocaleList.GetDefault(). To support the expanded number of locales, Android N is changing the way it resolves resources.

12. New emoticons

Android N introduces more emoji and emoji-related features, including skin tone emoji and support for variant selectors. If your app supports emoji, follow these guidelines to take advantage of these emoji-related features.

● Before inserting, check if the device contains emoji. To check which emoji are available in the system font, use the hasGlyph(String) method.

● Check if the emoji supports variant selectors. Variant selectors can render some emoji in color or black and white. On mobile devices, apps should render emoji in color, not black and white. However, if your app displays emoji embedded in text, it should use the black and white variant. To determine if an emoji has variants, use the variant selector. For a complete list of characters that support variants, see the Emoji Variant Sequences section in the Unicode documentation for variants.

● Check if an emoji supports skin tone. Android N allows users to modify the skin tone that emojis render in to their preference. Keyboard apps should provide a visual indication for emojis that have multiple skin tones and should allow users to select their preferred skin tone. To determine which system emojis have a skin tone modifier, use the hasGlyph(String) method. You can determine which emojis use skin tones by reading the Unicode documentation.

ICU4J API in Android

ICU4J is a widely used collection of open source Java libraries that provide Unicode and globalization support for software applications. Android N exposes a subset of the ICU4J APIs in the Android framework under the android.icu package for use by application developers. Migration is simple and mainly requires changing from the com.java.icu namespace to android.icu. If you are already using the ICU4J bundle in your app, switching to the android.icu APIs provided in the Android framework can save a lot of APK size.

14. OpenGL™ ES 3.2 API

Android N adds framework interfaces and platform support for OpenGL ES 3.2, including:

● All extensions from the Android Extension Pack (AEP) except EXT_texture_sRGB_decode.

● Floating point frame buffer and deferred shading for HDR.

● BaseVertex draw calls enable better batching and streaming.

● Powerful buffer access control reduces WebGL overhead.

15. VR support

(Google VR SDK for Android)

Android N adds platform support and optimization for new VR modes to enable developers to create high-quality mobile VR experiences for users. The new version provides a large number of performance enhancements for developers, including single buffer rendering and allowing VR applications to access a dedicated CPU core. In applications, you can enjoy smooth head tracking and stereo notification features designed specifically for VR.

16. Accessibility Enhancements

(API reference android.accessibilityservice.GestureDescription)

Android N now offers "Vision Settings" for new device settings directly on the welcome screen. This makes it easier for users to discover and configure accessibility features on their devices, including magnification gestures, font size, display size, and TalkBack.

17. Key Authentication

Hardware-backed keystores make it more secure to create, store, and use cryptographic keys on Android devices. They protect the keys from attacks on the Linux kernel, potential Android vulnerabilities, and from extraction from rooted devices.

To make using hardware-backed keystores simpler and more secure, Android N introduces key attestation. Apps and devices can use key attestation to confidently determine whether an RSA or EC key pair is hardware-backed, what the key pair's properties are, and what restrictions are placed on its use and validity.

Apps and closed device services can request information about key pairs through an X.509 attestation certificate (which must be signed by a valid attestation key). The attestation key is an ECDSA signing key that is injected into the device's hardware-backed keystore at the factory. Therefore, an attestation certificate signed by a valid attestation key confirms the existence of the hardware-backed keystore and the details of the key pairs in that keystore.

To ensure that the device uses a secure, official Android factory image, key attestation requires the device bootloader to provide the following information to the Trusted Execution Environment (TEE):

The operating system version and patch level installed on the device

● Verify the startup public key and lock status.

● In addition to key authentication, Android N also introduces fingerprint-bound keys, which will not be revoked when the fingerprint is registered.

Other new features include direct startup, print service enhancements, continuous performance API, scoped directory access, keyboard shortcut assist tools, etc.

How to experience the many new features of Android 7.0 immediately?

Tencent WeTest cloud real machine has multiple Android 7.0 phones to choose from, allowing you to smoothly control the cloud phone on the web.

<<:  A foreign programmer is really good at playing. He used this technology to trick everyone in the company...

>>:  RecyclerView implements sliding deletion and dragging functions

Recommend

Colorful data! 13 reliable and practical infographic creation tools

How to display a large amount of data and informa...

Torchbearers at the Paralympics and their robotic arms and legs

On the last day of the Beijing Winter Paralympic ...

The low-end mobile phone market is changing: all the big brands are rushing in

Meizu, which changed its market strategy this yea...

Cook responded indirectly to Xiaomi's rise: Apple is not worried

[[127868]] According to the US technology website...

HTML5 Mobile Design Basics

Desktop website design is mostly fixed layout or ...

Why is dog poop often mixed in with archaeological sites?

If you have the opportunity to become a student m...

Implementing source code coverage for Swift step by step

introduce Recently, I have been researching solut...