Android 10 围绕三个重要主题构建而成。首先,Android 10 正在通过先进的机器学习技术以及对可折叠设备和 5G 手机等新兴设备的支持,引领移动创新。其次,Android 10 重点关注隐私和安全,提供了近 50 项功能,可为用户提供更强大的保护、更高的透明度和更强的控制力。 最后,Android 10 扩展了用户的数字健康控制功能,以便个人和家庭能够更好地平衡技术的使用。
下面简要介绍了 Android 10 中面向开发者的功能,以及您现在可以如何使用这些功能。
创新技术和新体验
借助 Android 10,您可以利用最新的软硬件创新,为用户打造令人惊艳的应用体验。
借助 Android 10,您可以针对可折叠设备和其他大屏设备优化应用。
可折叠设备
Android 10 在强大的多窗口模式支持基础上,扩展了跨应用窗口的多任务处理功能,并提供了屏幕连续性,以便在设备折叠或展开时保持应用状态。Android 10 在 onResume 和 onPause 中添加了多项改进,以支持多项恢复并在应用获得焦点时通知应用。它还改变了 resizeableActivity 清单属性的工作方式,以帮助您管理应用在可折叠设备和大屏设备上的显示方式。为了帮助您针对可折叠设备进行构建,您可以在 Android Studio 中将可折叠模拟器配置为虚拟设备 (AVD)。如需详细了解如何针对可折叠设备优化应用,请参阅开发者指南。
5G 网络
5G 有望提供始终如一的更快速度和更低延迟,Android 10 增加了对 5G 的平台支持,并扩展了现有 API,以帮助您利用这些增强功能。您可以使用连接性 API 检测设备是否具有高带宽连接,并检查连接是否按流量计费。借助这些功能,您的应用和游戏可以通过 5G 为用户量身打造丰富、沉浸式的体验。
通知中的智能回复
Android 10 使用设备端机器学习技术在通知中建议关联操作,例如针对消息的智能回复,或在通知中打开地址对应的地图。您的应用可以立即利用此功能,而无需您执行任何操作。默认情况下,系统提供的智能回复和操作会直接插入到通知中。如果您愿意,仍然可以提供自己的回复和操作。只需使用 setAllowGeneratedReplies() 和 setAllowSystemGeneratedContextualActions() 针对每条通知停用智能回复功能即可。
智能回复功能可以根据通知内容建议操作。
深色主题
Android 10 添加了系统级深色主题,非常适合弱光环境,有助于节省电量。用户可以通过进入“设置”或开启“省电模式”来启用新的系统级深色主题。这会将系统界面更改为深色,并为支持深色主题的应用启用深色主题。您可以为应用构建自定义深色主题,也可以选择启用新的强制深色模式功能,让系统根据现有主题动态创建深色版本。您可能还希望利用 AppCompat 的 DayNight 功能,为使用较低版本 Android 的用户提供深色主题。如需了解详情,请参阅开发者指南。
Android 10 可以使用强制深色模式为您的应用动态创建深色主题。
手势导航
手势导航可为应用提供全屏内容。
Android 10 引入了全手势导航模式,该模式消除了导航栏区域,并允许应用使用全屏来提供更丰富、更沉浸式的体验。它保留了熟悉的“返回”“主屏幕”和“最近用过”导航,但通过边缘滑动而非可见按钮来实现。为了与手势导航无缝融合,您的应用应采用全屏模式,在导航栏后面绘制,以打造沉浸式体验。为了实现这一点,应用应使用 setSystemUiVisibility() API 以全屏模式布局,然后酌情处理 WindowInsets,以确保重要的界面部分不会被遮挡。立即开始优化您的应用,并参阅我们的博文系列了解详情。
设置面板
现在,您可以通过新的设置面板 API 直接在应用上下文中显示关键系统设置。设置面板是一个浮动界面,您可以通过调用它来显示用户可能需要的设置,例如互联网连接、NFC 和音量。例如,浏览器可以显示一个面板,其中包含飞行模式、WLAN(包括附近的网络)和移动流量等连接设置。如需显示设置面板,只需使用其中一个新 Settings.Panel 操作触发 intent 即可。
共享快捷方式
分享快捷方式让分享变得更快捷、更轻松,用户可以直接跳转到其他应用来分享内容。开发者可以发布分享目标,以便在应用中启动特定 activity 并附加内容,这些目标会显示在分享界面中。由于这些目标是提前发布的,因此分享界面在启动时会立即加载。分享快捷方式与应用快捷方式类似,并且使用相同的 ShortcutInfo API。ShareTarget AndroidX 库也支持该 API。如需了解详情,请参阅示例应用。
借助分享快捷方式,用户可以直接跳转到应用中附加了内容的特定 activity。
用户隐私设置
隐私保护是 Android 10 的核心重点,从平台中更强大的保护功能到设计时就考虑到隐私保护的新功能,无一不体现了这一点。Android 10 在先前版本的基础上进行了大量更改,旨在保护隐私并让用户拥有更多控制权,包括改进系统界面、实施更严格的权限以及限制应用可以使用的各种数据。如需详细了解如何在应用中支持这些功能,请参阅隐私权变更。
现在,用户可以选择在应用在前台运行时授予位置信息访问权限。
让用户更好地控制位置数据 - 用户可以通过新的权限选项更好地控制其位置数据,现在他们可以允许应用仅在实际使用时(在前台运行)访问位置信息。对于大多数应用来说,这提供了足够的访问权限,而对于用户来说,这在透明度和控制力方面是一个很大的改进。如需详细了解位置信息变更,请参阅开发者指南或我们的博文。
在网络扫描中保护位置数据 - 大多数用于扫描网络的 API 都已要求获取粗略位置信息权限。Android 10 改为要求精确位置信息权限,从而加强了对这些 API 的保护。
防止设备跟踪 - 应用无法再访问可用于跟踪的不可重置设备标识符,包括设备 IMEI、序列号和类似标识符。默认情况下,设备连接到 Wi-Fi 网络时,其 MAC 地址也会随机分配。请参阅最佳实践,了解如何为您的用例选择合适的标识符,并点击此处查看详情。
保护外部存储空间中的用户数据 - Android 10 引入了多项变更,让用户能够更好地控制外部存储空间中的文件及其中的应用数据。应用可以将其自己的文件存储在私有沙盒中,但必须使用 MediaStore 访问共享媒体文件,并使用系统文件选择器访问新“下载内容”集合中的共享文件。如需了解详情,请点击此处。
阻止不必要的干扰 - Android 10 会阻止应用从后台启动,从而避免应用意外跳转到前台并从其他应用接管焦点。如需了解详情,请点击此处。
安全
Android 10 引入了多项功能,通过改进加密、平台强化和身份验证,为用户提供更安全的体验。如需详细了解 Android 10 安全更新,请点击此处。
存储加密 - 所有发布时搭载 Android 10 的兼容设备都必须加密用户数据,为了提高加密效率,Android 10 采用了我们的新加密模式 Adiantum。
默认启用 TLS 1.3 - Android 10 还默认启用 TLS 1.3,这是 TLS 标准的重大修订版本,具有性能优势和增强的安全性。
平台安全加固 - Android 10 还对平台的多个安全关键区域进行了安全加固。
改进的生物识别 - Android 10 扩展了 BiometricPrompt 框架,以支持人脸等被动身份验证方法,并添加了隐式和显式身份验证流程。在显式流程中,用户必须在身份验证期间在 TEE 中明确确认交易。隐式流旨在为采用被动身份验证的交易提供更轻量的替代方案。Android 10 还改进了在需要时回退到设备凭据的功能。如需了解详情,请点击此处。
摄像头和媒体
照片的动态深度
应用现在可以请求动态深度图片,该图片由 JPEG、与深度相关元素相关的 XMP 元数据以及嵌入在同一文件中的深度和置信度图组成。这些功能可让您在应用中提供专门的模糊和焦外成像选项。动态深度是适用于生态系统的开放格式,我们正在与合作伙伴合作,将其引入搭载 Android 10 及更高版本的设备。
借助动态深度图片,您可以在应用中提供专门的模糊和焦外成像选项。
捕获播放的音频
现在,任何播放音频的应用都可以使用新的音频播放捕获 API 让其他应用捕获其音频串流。除了启用字幕和副标题之外,该 API 还可让您支持直播游戏等热门应用场景。我们在构建这项新功能时考虑到了隐私权和版权保护,因此应用捕获其他应用音频的能力受到限制,应用可以完全控制其音频串流是否可以被捕获。如需了解详情,请参阅这篇博文。
新的音频和视频编解码器
Android 10 增加了对开源视频编解码器 AV1 的支持,使媒体提供商能够使用更少的带宽将高质量视频内容流式传输到 Android 设备。此外,Android 10 还支持使用 Opus(一种针对语音和音乐流式传输进行了优化的开放式免版税编解码器)进行音频编码,并支持在兼容设备上使用 HDR10+ 播放高动态范围视频。 MediaCodecInfo API 引入了一种更简单的方法来确定 Android 设备的视频渲染功能。对于任何给定的编解码器,您都可以获取支持的大小和帧速率列表。
原生 MIDI API
对于在 C++ 中执行音频处理的应用,Android 10 引入了原生 MIDI API,以便通过 NDK 与 MIDI 设备进行通信。此 API 允许在音频回调中使用非阻塞读取来检索 MIDI 数据,从而实现 MIDI 消息的低延迟处理。不妨点击此处,通过示例应用和源代码试用该功能。
可缩放的定向麦克风
Android 10 通过新的 MicrophoneDirection API 让您能够更好地控制音频捕获。您可以使用该 API 指定录音时麦克风的首选方向。例如,当用户拍摄“自拍”视频时,您可以请求使用前置麦克风进行录音(如果存在)。 此外,此 API 还引入了一种控制可缩放麦克风的标准化方法,让您的应用能够控制录制字段维度。
Vulkan 无处不在
Android 10 实现了用于绘制高性能 3D 图形的低开销、跨平台 API,从而扩大了 Vulkan 的影响。现在,所有搭载 Android 10 及更高版本的 64 位设备都必须支持 Vulkan 1.1,并且建议所有 32 位设备也支持 Vulkan 1.1。我们已经看到生态系统中对 Vulkan 的支持势头强劲,在搭载 Android N 或更高版本的设备中,有 53% 支持 Vulkan 1.0.3 或更高版本。随着 Android 10 中新要求的实施,我们预计采用率在未来一年会进一步提高。
连接
改进了点对点连接和互联网连接
我们重构了 Wi-Fi 堆栈,以提高隐私保护和性能,并改进了常见用例(例如管理 IoT 设备和建议互联网连接),而无需位置信息权限。网络连接 API 可让您更轻松地通过本地 Wi-Fi 管理 IoT 设备,以实现配置、下载或打印等点对点功能。网络建议 API 可让应用向用户显示首选 Wi-Fi 网络,以便用户连接到互联网。
WLAN 性能模式
现在,应用可以通过启用高性能和低延迟模式来请求自适应 Wi-Fi。如果低延迟对用户体验至关重要,例如实时游戏、活跃语音通话和类似用例,这些功能会带来很大好处。该平台与设备固件配合使用,以最低功耗满足要求。如需使用新的性能模式,请使用 WIFI_MODE_FULL_LOW_LATENCY 或 WIFI_MODE_FULL_HIGH_PERF 调用 WifiManager.WifiLock.createWifiLock()。在这些模式下,平台会与设备固件配合,以最低功耗满足要求。
Android 基础知识
ART 优化
ART 运行时方面的改进有助于您的应用更快启动、消耗更少的内存以及更顺畅地运行,而无需您执行任何操作。Google Play 提供的 ART 配置文件可让 ART 在应用运行之前预编译应用的部分内容。在运行时,Android 10 向 ART 的并发复制 (CC) 垃圾回收器添加了分代垃圾回收,从而在时间和 CPU 方面提高垃圾回收效率,减少卡顿,并帮助应用在低端设备上更好地运行。
此图表显示了使用 Play 配置文件进行测试时,特定应用的启动时间缩短的百分比。
Neural Networks API 1.2
我们新增了 60 个新算子,包括 ARGMAX、ARGMIN、量化 LSTM,并进行了一系列性能优化。这为加速更多类型的模型(例如用于对象检测和图像分割的模型)奠定了基础。我们正在与硬件供应商和 TensorFlow 等热门机器学习框架合作,以优化和推出对 NNAPI 1.2 的支持。
Thermal API
设备过热可能会限制 CPU 和/或 GPU,从而可能以意想不到的方式影响应用和游戏。现在,在 Android 10 中,应用和游戏可以使用 Thermal API 来监控设备上的变化,并采取措施帮助恢复正常温度。例如,在线影音应用可以降低分辨率/比特率或减少网络流量,相机应用可以停用闪光灯或密集型图片增强功能,游戏可以降低帧速率或减少多边形曲面细分。点击此处了解详情。
通过公共 API 实现兼容性
Android 10 继续扩大对非 SDK 接口的限制,以便应用逐步过渡到仅使用公共 API。如果您当前使用的某个接口受到限制,您可以改为针对该接口请求新的公共 API。为了帮助您完成过渡并防止应用崩溃,我们仅在应用以 Android 10(API 29)为目标平台时启用这些限制。如需详细了解这些限制,请参阅开发者指南。
更新速度更快,代码更新频率更高
Android 10 旨在通过 Project Treble 实现更快的更新,该项目在 Android 与设备制造商和芯片制造商提供的底层设备代码之间提供了一致、可测试的接口。借助 Treble,设备制造商可以更快速、更低成本地将 Android 10 引入符合 Treble 要求的设备。
Android 10 还是首个支持 Project Mainline(官方称为 Google Play 系统更新)的版本,这是我们推出的一项新技术,旨在直接通过 Google Play 提供重要的代码更改,从而保护 Android 用户并让其设备保持最新状态。借助 Google Play 系统更新,我们能够更新搭载 Android 10 及更高版本的所有设备上的特定内部组件,而无需设备制造商进行完整的系统更新。
对于开发者,我们希望 Android 10 中的这些更新有助于在各种设备上广泛推动平台实现的一致性,并随着时间的推移带来更高的一致性,从而降低您的开发和测试成本。
开始使用
如需获取 Android 10 的完整开发者资源,请访问 developer.android.com/10。
