新功能和 API 概览
Android 12 面向开发者引入了一些出色的新功能和 API。以下几部分内容可帮助您了解适用于您的应用的功能并开始使用相关 API。
有关新增、修改和移除的 API 的详细列表,请参阅 API 差异报告。如需详细了解新的 API,请访问 Android API 参考文档 - 新 API 会突出显示以方便查看。此外,如需了解平台变更可能会在哪些方面影响您的应用,请务必查看会影响以 Android 12 为目标平台的应用和所有应用的 Android 12 行为变更。
新体验
用于接收内容的统一 API
Android 12 引入了全新的统一 API,您可以从任何可用来源(剪贴板、键盘或拖放操作)接收富媒体内容。
如需了解详情,请参阅用于接收内容的统一 API。
媒体
兼容的媒体转码
Android 12 可以自动将设备上录制的 HEVC(H.265) 和 HDR(HDR10 和 HDR10+)视频转码为 AVC (H.264),AVC (H.264) 是与标准播放器广泛兼容的格式。因此,当现代编解码器可用且不会影响与旧应用的兼容性时,便会利用现代编解码器。
如需了解详情,请参阅兼容的媒体转码。
AVIF 图片支持
Android 12 引入了对使用 AV1 图片文件格式 (AVIF) 的图片的支持。AVIF 是一种使用 AV1 编码的图片和图片序列的容器格式。它利用了视频压缩的帧内编码内容。与以前的图片格式(例如 JPEG)相比,这种格式可显著提升相同文件大小下的图片质量。如需深入了解此格式的优势,请参阅 Jake Archibald 的博文。
从音频产生触感反馈效果
Android 12 应用可使用手机的振动器从音频会话产生触感反馈。这可让您获得更身临其境的游戏和音频体验。例如,触感反馈效果增强的铃声有助于识别来电者,或者赛车游戏可以模拟在崎岖地形驾驶的感觉。
如需了解详情,请参阅 HapticGenerator 参考文档。
动画 GIF 和 WebP 的原生 ImageDecoder 支持
在 Android 12 中,NDK ImageDecoder
API 已进行了扩展,可以对使用以下文件格式的图片的所有帧和时间数据进行解码:动画 GIF 和动画 WebP 文件格式。在 Android 11 中引入该 API 时,该 API 仅从这些格式的动画中解码第一张图片。
使用 ImageDecoder
(而非第三方库)可进一步缩减 APK 大小,并从未来与安全性和性能相关的更新中受益。
如需详细了解该 API,请参阅 API 参考文档和 GitHub 上的示例。
安全性
在非 DPC 应用中提供设备属性验证
Android 12 扩展了一组应用,当这些应用生成新密钥时,可以验证认证证书中的设备属性。
自 Android 9(API 级别 28)起,使用 Keymaster 4.0 或更高版本的设备政策所有者 (DPO) 可以验证这些认证证书中的设备属性。从 Android 12 开始,任何以 Android 12 为目标平台的应用都可以使用 setDevicePropertiesAttestationIncluded()
方法执行此验证。
生成的设备属性包含以下 Build
字段:
BRAND
DEVICE
MANUFACTURER
MODEL
PRODUCT
连接性
Wi-Fi 感知 (NAN) 增强功能
Android 12 增强了 Wi-Fi 感知功能:
- 在搭载 Android 12 及更高版本的设备上,您可以使用
onServiceLost()
回调,以便在应用因服务停止或超出范围而导致已发现的服务丢失时收到提醒。 - 设置多个数据路径(NAN 数据路径)的方式将发生变化以提高效率。较低的版本使用 L2 消息功能来交换发起方的对等信息,由此导致了延迟。在搭载 Android 12 及更高版本的设备上,可以将响应方(服务器)配置为接受任何对等方,也就是说,它不需要预先知道发起方信息。这可加快数据路径启动,并只需一个网络请求即可实现多个点对点链接。
- 为了防止框架因资源不足而拒绝发现请求或连接请求,在搭载 Android 12 及更高版本的设备上,您可以调用
WifiAwareManager.getAvailableAwareResources()
。通过此方法的返回值,您可以获得可用数据路径的数量、可用发布会话的数量以及可用的订阅会话数量。