Zygote
API 24 · N

Android 7.0 Nougat

Multi-window

released
2016-08-22
runtime
ART
design
Material
status
stable

The story

Android had a fragmentation and update-speed problem that Google had been losing for years.

The problem

Every OS update had to pass through the SoC vendor, the OEM and often the carrier. Devices waited a year or never got updates.

Nougat added multi-window, direct reply, Vulkan, seamless A/B updates and a hybrid JIT/AOT runtime. It also laid the groundwork for Project Treble.

The one thing to remember

Seamless updates arrived, and the ground was prepared for Treble.

What shipped

  • Multi-window
  • Quick Settings tiles
  • Vulkan
  • Direct Reply in notifications
  • Seamless A/B updates
  • Data Saver

Platform internals

What changed underneath the APIs. These are the changes this site's architecture modules explain in depth.

  • Project Treble groundwork
  • A/B seamless updates
  • Hybrid JIT + AOT compilation in ART
  • MediaServer split into sandboxed processes

What developers had to deal with

  • Multi-window APIs
  • Vulkan API
  • Notification direct reply
  • FileProvider and StrictMode for file URLs

Behaviour changes

The full archive has every recorded change with its migration advice.

targetingstorage

File URI exposure is forbidden

Sharing a file:// URI in an intent throws FileUriExposedException.

What to doUse FileProvider and a content:// URI.

targetingui

Multi-window support

Apps must handle being resizeable and can be in split-screen.

What to doMake layouts adaptive and handle configuration changes without losing state.

targetingnotifications

Direct reply and bundled notifications

Notifications can carry a reply action and be grouped.

What to doUse the messaging style and add reply actions.

targetingbackground

Doze on the go

Doze restrictions also apply when the device is moving.

What to doUse high-priority FCM messages only for genuine, user-visible urgency.

all appsnetwork

Cleartext detection in StrictMode

StrictMode flags cleartext traffic.

What to doMove to HTTPS.

Permissions introduced here

  • BIND_CONDITION_PROVIDER_SERVICEsignature
  • BIND_QUICK_SETTINGS_TILEunknown
  • BIND_SCREENING_SERVICEsignature|privileged
  • BIND_VR_LISTENER_SERVICEsignature

Where this sits

Release 24 of 37 API levels, by date
Headline features
6
Architecture changes
4
Developer changes
4
Sources cited
5

Kernel

This release shipped on Linux kernel versions 4.4. Kernel versions vary by device.