Android 16 release notes

This page summarizes the major features in the Android 16 release and provides links to additional information. These feature summaries are organized according to the feature's documentation location on this site.

Audio

Configurable Audio Policy support

HIDL HAL let Android vendors use an alternative approach for specifying rules for audio routing called Configurable Audio Policy (CAP), which is more flexible than the default engine used for phones. When migrating to AIDL HAL, support for CAP wasn't implemented in Android 14 and 15 due to lack of resources. We fixed this in Android 16 by providing missing AIDL definitions and changing the mechanism for loading of CAP configuration by the framework. See Configurable Audio Policy support in AIDL HAL for more information.

We converted the Cuttlefish Auto target to take advantage of the CAP AIDL implementation to help partners with migration of their products.

Architecture

Generic Bootloader (GBL)

Android 16 introduces support for a new Generic Bootloader (GBL), a standardized, updatable bootloader designed to streamline the Android boot process.

For more information on GBL, see Generic Bootloader (GBL) overview.

Compatibility

Camera ITS updates

Android 16 contains updates to the Camera Image Test Suite (ITS). For more details, see:

Compatibility Definition Document (CDD)

The Android 16 Compatibility Definition Document (CDD) is released.

CTS Verifier Bluetooth MIDI test updates

To simplify the testing procedure and reduce potential errors, Android 16 lets you run CTS-V Bluetooth MIDI loopback tests without a USB MIDI peripheral.

For the documentation specific to this change, see CTS Verifier Bluetooth MIDI tests updates.

CTS Verifier barometer test updates

To support Android location features, Android 16 includes a new set of CTS-V barometer measurement tests.

For the documentation specific to this change, see CTS Verifier barometer measurement tests.

CTS Verifier multidevice test updates

To support Android connectivity features, Android 16 includes a new set of CTS-V tests.

For the documentation specific to this change, see CTS Verifier multidevice test updates.

Connectivity

Android OS identification

Starting in Android 16, the Android framework includes a Generic Attribute (GATT) service called Android information service (AIS), which lets Bluetooth devices read the Android API level as a GATT characteristic of the service. This service lets Bluetooth device manufacturers know whether a Bluetooth peripheral is pairing with a central device that is running the Android OS, and manage specialized logic based on the API level.

For more information, see Android OS identification.

Emergency callback mode

Android 16 introduces the EmergencyCallbackModeListener system API that lets the IMS module get the emergency callback mode state through a callback when the device enters or exits emergency callback mode for SMS or calls. Device manufacturers can use this API to implement IMS registration management to meet carrier and 3GPP requirements. For example, if the user equipment (UE) is in the emergency callback mode state, the IMS module can be set to maintain its emergency registration for a certain period of time. The IMS module can also maintain, extend, and cancel the emergency registration depending on the state of the emergency callback mode.

IMS service updates

Android 16 introduces system APIs that device manufacturers and vendors can use for their IMS implementation. The following table lists the APIs that privileged apps can use to support IMS services:

Class API
MmTelFeature EpsFallbackReason
ImsTrafficType
ImsTrafficDirection
modifyImsTrafficSession
startImsTrafficSession
stopImsTrafficSession
triggerEpsFallback
ImsTrafficSessionCallback All
ConnectionFailureInfo All
TelephonyManager getImsPrivateUserIdentity
getImsPublicUserIdentities
getImsPcscfAddresses
getSimServiceTable
ImsCallSessionListener callSessionTransferred
callSessionTransferFailed
callSessionSendAnbrQuery
SmsMessage getRecipientAddress

Ranging module

Android 16 introduces the Ranging module, which aggregates the APIs for ranging technologies including ultra-wideband, Bluetooth channel sounding, Bluetooth RSSI ranging, and Wi-Fi round trip time (RTT). For more information, see:

Wi-Fi hotspot updates

Android 16 introduces the SoftApCallback#onClientsDisconnected method, to get a list of disconnected clients of a Wi-Fi hotspot (Soft AP) and the reason for disconnection for each client. This capability lets automotive OEMs meet the required specifications for projected apps, enhancing the configurability and functionality of the Android Wi-Fi stack.

To use the SoftApCallback#onClientsDisconnected method, register a callback to obtain the device capabilities using WifiManager#registerSoftApCallback for a tethered hotspot or WifiManager#registerLocalOnlyHotspotSoftApCallback for a local-only hotspot. Existing registered soft AP callbacks must override the SoftApCallback#onClientsDisconnected method. For more information, see Develop apps with hotspot APIs.

For an example implementation of a tethered Wi-Fi hotspot within the reference AAOS Car settings page that uses SoftApCallback, see WifiTetheringHandler.java.

To test your implementation, run the following unit tests and CTS Verifier tests:

  • Unit tests
    • Managers: atest packages/modules/Wifi/framework/tests/
    • Services: atest packages/modules/Wifi/service/tests/wifitests/
  • CTS Verifier tests: atest CtsWifiSoftApTestCases

Display

Desktop windowing

Desktop windowing enables greater productivity by providing a familiar interface to arrange and resize overlapping windows. See Support multi-window for information on how to support desktop windowing.

Interaction

Haptics

Android 16 introduces APIs to reduce haptics fragmentation in the ecosystem, eliminate the need for individual device tuning, and deliver richer and expressive motion experiences to developers and device end users. The new piecewise linear envelope (PWLE) API supports the creation of normalized PWLE effects that produce similar haptic perceptions on similar devices.

The following is a summary of how the new APIs in Android 16 improve haptics capabilities:

  • Reduce development costs by removing per device tuning through a normalized value scale.
  • Create baseline set of haptics primitives for the ecosystem (for example, CLICK, TICK, LOW_TICK, SLOW_RISE, QUICK_RISE, QUCK_FALL, THUD, SPIN).
  • Support create and compose parametric effects (duration, amplitude, and frequency).
  • Support automatic protection for haptics overdriving.
  • Enable multisensory experiences such as combined haptics and sound.
  • Close the Android haptics developer capability parity gap.

We recommend integrating and using the new normalized PWLE APIs to enable baseline haptics primitives and to provide support for new developer haptics experiences. For more information, see Implement PWLE effects.

Heart rate base sensor

In Android 16, to maintain compatibility, the Android framework uses the SENSOR_PERMISSION_READ_HEART_RATE permission for heart rate base sensors. In Android 15 and lower, the framework uses the SENSOR_PERMISSION_BODY_SENSORS permission. For more information on the heart rate base sensor type, see Heart rate.

Media

HDR support

Android 16 introduces the following improvements for HDR support:

We recommend the following:

  • Enable HLG or DolbyVision (8.4 with HLG) in your camera app by default.
  • Enable Ultra HDR for photos by default.
  • Provide app support for HLG video and Ultra HDR capture.

Media quality framework

In Android 16, we're designing a new picture and audio quality framework to establish a standardized API for Android television implementations. This framework provides a unified approach to picture quality (PQ) and audio quality (AQ) adjustments on Android TVs and simplifies development for vendors. This feature provides the following:

  • Granular picture quality setting per stream, per user, and per input type on the display panel, with a system level setting for the entire screen to use across all apps
  • Granular audio setting per stream and per device, with a system level setting to use across all apps

Video codec

In Android 16, we're launching platform support for the Advanced Professional Video (APV) codec. The APV codec is a high-bitrate intra-frame codec designed to give content creators top-quality captures and edits.

Also, Google plans to transition all users from VP8, VP9, and AVC (H.264) to AV1. App developers prefer AV1, the next generation of codecs, to avoid transcodes in the backend and reduce latency. Hardware codecs are still recommended, especially for encoding, despite the fact that AV1 software codec support is improving.

You can adopt AV1 for a higher quality, reliability, and concurrency and consider APV support in the Camera and Gallery app.

Performance

Trade-in mode

Android 16 introduces trade-in mode, which lets developers and resellers assess system health after a factory reset.

For further information, see Obtain system health information.

Permissions

Android role updates

Android 16 updates the following roles:

  • COMPANION_DEVICE_APP_STREAMING: For use cases for streaming, casting, or mirroring of apps, which allow streaming, casting, or mirroring, from an Android-powered device such as mobile phone or tablet to desktop or laptop computer.

  • COMPANION_DEVICE_NEARBY_DEVICE_STREAMING: For use cases for Android devices such as mobile phone or tablet to Connected Vehicle app and to XR devices app streaming.

See Android roles for more information.

Security

Cellular security

Android 16 introduces minor UX changes to the 2G connectivity toggle present under SIM Settings to align it with the rest of the Settings. Android 16 also introduces a dedicated section for cellular security features named Mobile network security in Safety Center under Settings.

Device integrity

Android 16 adds support for KeyMint version 4.0 attestation certificates. To verify the integrity of loaded APEX modules, KeyMint 4.0 certificates include a new moduleHash field in the KeyDescription structure.

See Key and ID attestation for more information.

Storage

Default contacts account

Android users lose some contacts when they switch to a different device. To reduce the loss of contacts, Android 16 introduces the concept of a default account for contacts. To support this feature, your Contacts app should:

  • Promote cloud sync options to prevent loss of contacts over time
  • Ask users if they want to move their local and SIM contacts to cloud default accounts
  • Discourage creation of new local and SIM contacts

Updates

Seamless app updates

When a package is being updated, it's halted and put into a frozen state to prevent it from running while its code and resources are changing. For large, complex, and system-critical apps, putting packages into a frozen state can result in a poor user experience as dependent apps might be unrunnable.

Android 16 reduces the time an app is unrunnable by moving dexopt or dex2oat to an earlier phase of the install process. This change reduces the time an app is frozen from a high of seconds to tens of milliseconds.