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 的平台支持,并扩展了 ConnectivityManager,以帮助您充分利用这些增强功能。您可以使用连接性 API 检测设备是否具有高带宽连接,并检查连接是否按流量计费。借助这些功能,您的应用和游戏可以通过 5G 为用户量身打造丰富、沉浸式的体验。
通知中的智能回复
Android 10 使用设备端机器学习技术在通知中建议关联操作,例如针对消息的智能回复,或在通知中打开地址对应的地图。您的应用可以立即利用此功能,而无需您执行任何操作。默认情况下,系统提供的智能回复和操作会直接插入到通知中。如果您愿意,仍然可以提供自己的回复和操作。如需针对每条通知停用智能回复,请使用 setAllowGeneratedReplies() 和 setAllowSystemGeneratedContextualActions()。
智能回复可以根据通知内容建议操作。
深色主题
Android 10 添加了系统级深色主题,非常适合在弱光环境下使用,并且有助于节省电量。用户可以通过进入“设置”或开启“省电模式”来启用新的系统级深色主题。这会将系统界面更改为深色,并为支持深色主题的应用启用深色主题。您可以为应用构建自定义深色主题,也可以选择启用“强制深色模式”功能,让系统根据现有主题动态创建深色版本。您还可以利用 AppCompat 的 DayNight 功能,为使用较低版本 Android 的用户提供深色主题。如需了解详情,请参阅深色主题。
Android 10 可以使用强制深色模式为您的应用动态创建深色主题。
手势导航
手势导航可为应用提供全屏内容。
Android 10 引入了全手势导航模式,该模式消除了导航栏区域,并允许应用使用全屏来提供更丰富、更沉浸式的体验。它保留了熟悉的“返回”“主屏幕”和“最近”导航功能,但通过边缘滑动而非可见按钮来实现。为了与手势导航无缝融合,请采用全屏模式,在导航栏后面绘制内容,打造沉浸式体验。如需实现此功能,请使用 setSystemUiVisibility() API 全屏布局应用,然后酌情处理 WindowInsets,以确保重要的界面部分不会被遮挡。如需了解详情,请参阅手势导航和手势导航博文系列。
设置面板
您可以通过 Settings.Panel API 直接在应用上下文中显示关键系统设置。设置面板是一个浮动界面,您可以通过调用它来显示用户可能需要的设置,例如互联网连接、NFC 和音量。例如,浏览器可以显示一个面板,其中包含飞行模式、WLAN(包括附近的网络)和移动流量等连接设置。如需显示设置面板,请使用其中一个 Settings.Panel 操作触发 intent。
共享快捷方式
分享快捷方式让分享变得更快捷、更轻松,用户可以直接跳转到其他应用来分享内容。开发者可以发布分享目标,以便在应用中启动特定 activity 并附加内容,这些内容会显示在分享界面中。由于这些目标是提前发布的,因此分享界面在启动时会立即加载。分享快捷方式与应用快捷方式类似,并且使用相同的 ShortcutInfo API。ShareTarget AndroidX 库也支持该 API。如需了解详情,请参阅分享快捷方式示例应用。
借助分享快捷方式,用户可以直接跳转到应用中附加了内容的特定 activity。
用户隐私设置
隐私保护是 Android 10 的核心重点,从平台中更强大的保护功能到设计时就考虑到隐私保护的新功能,无一不体现了这一点。Android 10 在之前版本的基础上进行了大量更改,旨在保护隐私并让用户拥有更多控制权,包括改进系统界面、更严格的权限以及限制应用可以使用的数据。如需详细了解如何在应用中支持这些变更,请参阅隐私权变更。
现在,用户可以选择在应用在前台运行时授予位置信息访问权限。
让用户更好地控制位置数据:用户可以通过权限选项更好地控制其位置数据,他们可以允许应用仅在实际使用时(在前台运行)访问位置信息。对于大多数应用来说,这提供了足够的访问权限级别,而对于用户来说,这大大提高了透明度和控制力。如需详细了解位置信息变更,请参阅请求位置信息更新或 Android 开发者位置信息博文。
保护网络扫描中的位置数据:大多数用于扫描网络的 API 都已要求获取粗略位置信息权限。Android 10 改为要求精确位置信息权限,从而加强了对这些 API 的保护。
防止设备跟踪:应用无法再访问可用于跟踪的不可重置设备标识符,包括设备 IMEI、序列号和类似标识符。默认情况下,设备连接到 Wi-Fi 网络时,其 MAC 地址也会随机分配。如需了解详情,请参阅唯一标识符最佳实践和对不可重置的设备标识符的限制。
保护外部存储空间中的用户数据:Android 10 引入了多项变更,让用户能够更好地控制外部存储空间中的文件及其中的应用数据。应用可以将其自己的文件存储在私有沙盒中,但必须使用 MediaStore 访问共享媒体文件,并使用系统文件选择器访问“下载内容”集合中的共享文件。如需了解详情,请参阅分区存储。
阻止不必要的干扰:Android 10 可防止应用从后台启动,从而避免应用意外跳转到前台并从其他应用中夺取焦点。如需了解详情,请参阅后台 activity 启动。
安全
Android 10 引入了多项安全功能,通过在加密、平台强化和身份验证方面的改进,为用户提供更安全的体验。 如需了解详情,请参阅 Android Q 安全性方面的新变化。
存储加密:所有发布时搭载 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 级别 29)及更高版本的设备。如需了解详情,请参阅动态深度规范 (PDF)。
借助动态深度图片,您可以在应用中提供专门的模糊和焦外成像选项。
捕获播放的音频
任何播放音频的应用都可以使用音频播放捕获 API 让其他应用捕获其音频串流。除了启用字幕和副标题之外,该 API 还可让您支持直播游戏等热门用例。由于此功能在构建时考虑了隐私和版权保护,因此应用捕获其他应用音频的能力受到限制,应用可以完全控制其音频串流是否可以被捕获。如需了解详情,请参阅在 Android Q 中捕获音频。
新的音频和视频编解码器
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 中新要求的实施,我们预计采用率在未来一年会进一步提高。
连接
改进了点对点连接和互联网连接
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.createWifiLock()。
Android 基础知识
ART 优化
ART 运行时方面的改进有助于您的应用更快启动、消耗更少的内存以及更顺畅地运行,而无需您执行任何操作。 借助 Google Play 提供的 ART 配置文件,ART 甚至可以在应用运行之前预编译应用的部分内容。在运行时,Android 10 将分代垃圾回收添加到 ART 的并发复制 (CC) 垃圾回收器中,以便在时间和 CPU 方面提高垃圾回收效率,减少卡顿,并帮助应用在低端设备上更好地运行。
此图表显示了使用 Play 配置文件进行测试时,特定应用的启动时间缩短的百分比。
Neural Networks API 1.2
Android 10 增加了 60 种运算,包括 ARGMAX、ARGMIN 和量化 LSTM,并进行了一系列性能优化。这为加速更广泛的模型(例如用于对象检测和图像分割的模型)奠定了基础。Google 与硬件供应商和热门机器学习框架(如 TensorFlow)合作,以优化和提供对 NNAPI 1.2 的支持。
Thermal API
设备过热可能会限制 CPU、GPU 或两者,从而可能以意想不到的方式影响应用和游戏。在 Android 10 中,应用和游戏可以使用 Thermal API 来监控设备上的变化,并采取措施帮助恢复正常温度。例如,在线影音应用可以降低分辨率、比特率或网络流量,相机应用可以停用闪光灯或密集型图片增强功能,游戏可以降低帧速率或减少多边形曲面细分。如需了解详情,请参阅 Thermal API。
通过公共 API 实现兼容性
Android 10 继续扩大对非 SDK 接口的限制,以便应用逐步过渡到仅使用公共 API。如果您使用的接口受到限制,您可以改为请求针对该接口的公共 API。为了帮助您完成过渡并防止应用崩溃,Android 10 仅在应用以 Android 10(API 级别 29)为目标平台时才会启用这些限制。如需了解详情,请参阅 Android 10 中有关限制非 SDK 接口的更新。
更新速度更快,代码更新频率更高
Android 10 旨在通过 Treble 计划 实现更快的更新,该计划在 Android 与设备制造商和芯片制造商提供的底层设备代码之间提供了一个一致、可测试的接口。通过 Treble,设备制造商可以更快速、更低成本地将 Android 10 引入符合 Treble 要求的设备。
Android 10 还是首个支持 Mainline 计划(官方称为 Google Play 系统更新)的版本,该技术可直接通过 Google Play 提供重要的代码更改,从而保护 Android 用户并让其设备保持最新状态。借助 Google Play 系统更新,Google Play 可以更新所有搭载 Android 10 及更高版本的设备上的特定内部组件,而无需设备制造商进行完整的系统更新。
对于开发者而言,Android 10 中的这些更新有助于在各种设备上实现平台实现的一致性,并随着时间的推移带来更高的一致性,从而降低开发和测试成本。
开始使用
如需获取 Android 10 的完整开发者资源,请访问 developer.android.com/10。
