Android 7.0 Nougat

Android Nougat
Android Nougat (codenamed Android N during development) is the seventh major version of the Android operating system. First released as an alpha test version on 9 March 2016, it was officially released on 22 August 2016, with Nexus devices being the first to receive the update. The LG V20 was the first smartphone released with Nougat. Nougat introduces notable changes to the operating system and its development platform, including the ability to display multiple apps on-screen at once in a split-screen view, support for inline replies to notifications, and an expanded "Doze" power-saving mode that restricts device functionality once the screen has been off for a period of time. Additionally, the platform switched to an OpenJDK-based Java environment and received support for the Vulkan graphics rendering API, and "seamless" system updates on supported devices. Nougat received positive reviews. The new app notification format received particular praise, while the multitasking interface was seen as a positive change, but reviewers experienced incompatible apps. Critics had mixed experiences with the Doze power-saving mode, but faster app installs and "tweaks" to the user interface were also reviewed positively. As of 7 July 2017, 11.5% of devices that access Google Play run Nougat, with 10.6% on Android 7.0 and 0.9% on Android 7.1.

History
The release was internally codenamed "New York Cheesecake". On March 9, 2016, ahead of the Google I/O developer conference, Google released the first alpha version of Android "N" as part of a new "Android Beta Program" intended for testing by developers and enthusiasts before official release "this summer". The developer preview builds were compatible with only current Google Nexus devices; the 5X, 6P, 6, 9, Pixel C, and Nexus Player. The "Android Beta Program" that was introduced allows testers to opt-in for over-the-air updates to new beta versions as they are released. On April 13, 2016, Android N Beta Preview 2 was released. Google further discussed Android "N" during the I/O keynote on May 18, 2016, and unveiled its new virtual reality platform, Daydream. Beta Preview 3, the first preview release deemed suitable for wider public beta testing, was released at this time. Google also announced that it would hold a contest to determine the official release name of the operating system. Beta Preview 4 was released on June 15, 2016. On June 30, 2016, Google announced that N's release name would be "Nougat"; it was also confirmed that Nougat would be version 7.0 of Android. The final Beta Preview, 5, was released on July 18, 2016.

Android 7.0 was officially released on August 22, 2016, with the Nexus 6, 5X, 6P, 9, Nexus Player, Pixel C, and General Mobile 4G as the first devices to receive the update. Dave Burke, Android's Vice President of Engineering, stated in August 2016 that updates to Nougat would be released quarterly as maintenance releases focusing on "continued refinements and polish". On September 6, 2016, LG announced the V20, the first smartphone to ship with Nougat pre-installed. Google unveiled the first-party Pixel and Pixel XL smartphones during a hardware-focused event on October 4, 2016, with the Pixel phones replacing the Nexus series. Updates to existing devices vary by manufacturer and carrier, and driver support for the version by the manufacturer of a device's respective system-on-chip. Major manufacturers, including HTC, Sony, and Motorola announced intents to update a range of their recent devices to Nougat. Qualcomm stated that it would not support Nougat on devices using its Snapdragon 800 and 801 system-on-chips for undisclosed reasons. Although developer preview builds of Nougat were released for the device, Sony stated that it would not upgrade the Xperia Z3 (which uses the Snapdragon 801) to the final version due to "unforeseen platform limitations". It was reported that the Google Compatibility Test Suite (whose tests must be passed in order to receive official certification) specified that all devices running Nougat must support either Vulkan or OpenGL ES 3.1 graphics APIs — neither of which are supported by the device's Adreno 330 graphics core.

A post-release update known as Android 7.1 was pre-loaded onto Google's Pixel and Pixel XL smartphones released in October 2016; the new version adds support for the Google Daydream VR platform, image keyboards, expanded emoji support (including male and female versions of gendered emoji), support for actions to be displayed in menus on home screen app shortcuts, and other new features. A preview of 7.1 for existing Nexus devices was released via Android Beta Program later in the month, and officially released as Android 7.1.1 on December 5, 2016. As of 7.1.1, the Nexus 6 and Nexus 9 are now considered end-of-life, and do not receive any further updates. Android 7.1.2 was released in April 2017, providing various improvements and minor functionality improvements to Nexus and Pixel-branded devices. As of June 2017, 10% of devices that access Google Play run Nougat.

Features
User experience Nougat redesigns the notification shade, which now features a smaller row of icons for settings, replacing notification cards with a new "sheet" design, and allowing inline replies for notifications. This feature is implemented via existing APIs that are used for similar functionality on Android Wear. Multiple notifications from a single app can also be "bundled", and there is greater per-app control over notifications. A split-screen display mode was introduced for phones, in which two apps can be snapped to occupy halves of the screen. An experimental multi-window mode is also available as a hidden feature, where multiple apps can appear simultaneously on the screen in overlapping windows. The "Doze" power saving mechanism introduced in Android Marshmallow was expanded to include a state activated when the device is running on battery and the screen has been off for a period of time but is not stationary. In this state, network activity is restricted, and apps are granted "maintenance windows" in which they can access the network and perform background tasks. As in Marshmallow, the full Doze state is activated if the device is stationary with its screen off for a period of time. A new "Data Saver" mode restricts background mobile data usage, and can trigger internal functions in apps that are designed to reduce bandwidth usage, such as capping the quality of streaming media.

Platform In December 2015, Google announced that Android Nougat would switch its Java Runtime Environment from the defunct Apache Harmony to OpenJDK—the official open source implementation of the Java platform maintained by Oracle Corporation and the Java community. The Android Runtime (ART) now incorporates a profile-guided compilation system, utilizing a JIT compiler and profiling alongside its current ahead-of-time compiler to further optimize apps for a device's hardware and other conditions in the background.

Nougat introduces a system for enabling "seamless", automatic system updates, based upon and sharing some code with the implementation of similar functionality on Chrome OS. The system uses a pair of SquashFS partitions; the Android system executes from an "online" partition, while updates are applied in the background to a redundant "offline" partition. On the next boot following the installation of an update, the redundant partition is designated as active, and the device henceforth boots into the updated system. The previous system partition is kept as a backup in case of update failure, and to serve as the "offline" partition for the next update. This system removes the requirement for the device to reboot into the system recovery environment to apply the update (which prevents the device from being used until the update is complete) and also provides the ability for an update to be automatically rolled back in case of a failure. Due to the partitioning requirements of this system, existing devices will not support seamless updates. Additionally, due to the ART changes on Nougat, apps no longer need to be re-compiled upon the first boot after a system update. Developer Preview 2 added platform support for Vulkan, the new low-level 3D-rendering API to augment OpenGL ES but with higher graphics performance.

Nougat is the first version featuring Unicode 9.0 support and comes with updated emoji plus support for emoji skin tones. Android 7.1 adds native API support for implementing image keyboards; multi-endpoint telephony; shortcut menus and rounded icon assets for apps on launchers; and support for the Google Daydream virtual reality platform. The Google Daydream feature is a specific "VR mode", with advanced technology for reduced graphics latency, a "sustained performance mode" to assist developers in optimizing apps to a device's thermal profile, a new head tracking algorithm which combines the input from various device sensors, and integration of system notifications into the VR user interface.

Security In response to the Stagefright family of bugs disclosed and fixed in 2015, several changes were made to harden the media stack against future vulnerabilities. Runtime integer overflow detection was implemented, preventing the majority of Stagefright-like programming bugs from becoming vulnerabilities, in addition to helping fix and prevent such bugs. Android's monolithic MediaServer process was redesigned to better adhere to the principle of least privilege. MediaServer is now split into several separate processes, each running in its own unprivileged sandbox, and granted only the permissions required for its task. For example, only the AudioServer can access Bluetooth, and libstagefright now runs within the MediaCodecService sandbox, which is only granted GPU access. Further constraints were placed on the media stack through seccomp. Various mechanisms were enabled to reduce the possibility of malicious code being injected and/or executed inside the Linux kernel, including dividing kernel memory into logical segments for code and data, with page access permissions of read-only and no-execute as appropriate. The kernel was also restricted from directly accessing user space memory, and stronger stack protection was enabled in the GCC compiler to reduce stack smashing. To limit exposure of the kernel to potentially malicious code, perf was disabled by default, ioctl commands were restricted by SELinux, and seccomp-bpf was enabled to grant processes the ability to restrict system calls. On devices shipping with Android Nougat, the "Verified Boot" policy (introduced partially on KitKat, and displaying notifications on startup on Marshmallow) must be strictly enforced. If system files are corrupted or otherwise modified, the operating system will only allow operation in a limited-use mode or refuse to boot at all.

Reception
Dieter Bohn of The Verge praised the new multitasking interface in Android Nougat, calling it "long overdue" for Android tablets. Although he initially found the implementation "confusing", he wrote that it worked well once he understood it properly, though he noted that "some apps don’t fully support split screen, while others work fine but pop up a warning anyway". Bohn also liked the new way to reply to any message notification, stating "Android has long had an advantage in useful and consistent notifications" versus iOS, and added "now that quick replies are standard on it I don't see that lead diminishing". He also highlighted "tweaks" throughout, including quick toggles in the notification drawer, Settings menu with more visual information, and a Camera app that has been "cleaned up a bit", as welcome changes. Bohn stated that he didn't notice any significant battery improvements despite the Doze power-saving feature in Nougat. He also wrote extensively about the fact that, even though Nougat is "great", "it’s a shame it will take so long for anybody to see it", writing about the lack of updates to most Android devices, and that "unless you have a Nexus, it could be a few months, it could be a year before it becomes available on your phone".

Chris Velazco of Engadget also praised the new, bundled app notifications, writing that prior Android versions' notifications "just sort of sit there" until interaction, but Nougat "does a much better job of bundling them by app and letting you get things done". He highlighted the ability to expand a bundled Gmail notification to see subjects and senders of individual messages. Velazco stated that split-screen multitasking was a "big deal", but he also encountered non-compatible apps. Visual elements in the Settings app, quick toggles in the notification dropdown, and new language and emoji support were also positive highlights in the review. Velazco did note a battery improvement from the Doze power-saving feature, stating his "Nexus 6P seemed to gain about an hour or two of standby battery life". He also wrote that installing and launching apps might be "a little faster than usual" thanks to Nougat's new app compiler, and he hoped game developers will utilize the new Vulkan API for some "seriously good-looking mobile gaming".