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:
- Ranging: Out-of-band message sequence and payload specification
- Range between devices (Android Developers site)
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/
- Managers:
- 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:
- App fallback capability (SDR as fallback) through Media3 ExoPlayer and photo picker.
- Enhanced screenshot support for HDR content. For more information, see HDR in Android screenshots.
- Increased consistency across HDR content created.
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.