来源 | Android 开发者博客
编辑 | Yonie
今天谷歌官方正式发布了 Android 10,本版本具备了先进的机器学习能力,并对可折叠和 5G 手机等新兴前沿设备提供了支持;另外也在创新功能和新体验、相机与媒体、用户隐私与安全等方面做出了很大的改进。
历经一年多的开发和早期试用者为期数月的测试,Android 10 今天终于正式面世了!
Android 10 是围绕三大主题打造的:首先,Android 10 正在引领移动创新潮流,其具备先进的机器学习能力,并对可折叠和 5G 手机等新兴前沿设备提供了支持;其次,Android 10 高度关注隐私和安全性,通过近 50 项功能为用户提供更好的安全保护、透明度和控制权;最后,Android 10 增强了用户对数字生活的控制能力,使个人和家庭可以更好地从技术中获益。
今天我们将 Android 10 源代码发布到了 Android 开源项目(AOSP)上,惠及更为广泛的 Android 生态系统。我们还开始向全球范围的全部三代 Pixel 设备推送官方 Android 10 更新。还有很多合作伙伴设备(包括 Beta 计划中的设备)将在今年年底之前收到更新。
感谢大家为今年的 Android 测试版作出的贡献——有超过 200,000 名用户在 26 款 Beta 设备上测试过 Android 10 的早期版本,报告了超过 20,000 个问题。此外,你们还通过许多文章、讨论、调查和当面会谈提出了自己的想法和意见,并让自己的应用提前为今天发布的版本做好了适配。正是你们大家的支持和参与使 Android 成为了一个令人惊叹的平台。你们大家与我们的 OEM 合作伙伴一起,将今天的 Android 10 打造成比以往更激动人心的版本。Android 10 支持的设备数量将是有史以来最多的。Android 很幸运能拥有这样一个充满激情的社区!
欲为 Android 10 开发应用,请访问以下网址:https://developer.android.com/about/versions/10/
Android 10 有哪些更新?
下面我们来看看 Android 10 有哪些更新内容,这些内容又该如何使用。一定记得查看我们的关键字博客了解更多内容:http://blog.google/products/android/android-10
创新功能和新体验
在 Android 10 的帮助下,你可以利用最新的软硬件创新技术为用户构建出色的应用体验。
可折叠设备:基于强大的多窗口支持,Android 10 得以跨多个应用窗口扩展多任务能力,并提供连续屏幕界面,以便在设备折叠或展开时保持你的应用程序状态。有关针对可折叠设备优化应用程序的详细信息,请参阅开发人员指南:https://developer.android.com/guide/topics/ui/foldables
5G 网络:5G 技术能带来更快的连接速度和更低的延迟,而 Android 10 增加了对 5G 的平台支持,并扩展了现有的 API 以帮助你利用这些增强功能。你可以使用连接 API 来检测设备是否具有高带宽连接,并检查连接是否在被监测。有了这些,你的应用和游戏就可以为连接到 5G 网络的用户量身定制丰富、身临其境的体验。
实时字幕:实时字幕自动为用户设备上任何应用播放的各类媒体提供字幕,从视频到播客和音频消息全部支持。机器学习语音模型是在设备本地运行的,被处理的音频流不会被传送到云端。对于开发者来说实时字幕是可选的,但只需简单点击一下就能让你的内容更易于访问,从而扩展你的应用和游戏的受众群体。实时字幕功能将于今年秋季来到 Pixel 设备上;我们正与合作伙伴密切合作,让更多运行 Android 10 的设备获得这一功能。
通知中的智能回复:Android 10 使用设备端的机器学习能力来为通知中的上下文操作提供建议,例如对消息进行智能回复或根据通知中的地址打开地图。我们在构建此功能时考虑到了用户隐私需求,让机器学习处理过程完全在设备上完成。你的应用可以立即利用此功能,或者你可以选择屏蔽它),而改用自己的建议机制。
智能回复可以根据通知内容建议操作。
黑暗主题:Android 10 增加了系统全局的黑暗主题,非常适合低光照环境,有助于节省电池电量。你可以为应用程序构建自定义黑暗主题,或让系统从当前主题动态创建黑暗版本。有关详细信息,请参阅开发者指南:https://developer.android.com/guide/topics/ui/look-and-feel/darktheme
Google Keep 中的黑暗主题
手势导航:Android 10 引入了完整的手势导航模式,移除了导航栏区域,允许应用程序使用整个屏幕区域提供更丰富、更身临其境的体验。查看此处来优化你的应用:https://developer.android.com/guide/navigation/gesturenav
手势导航使应用程序可以利用整个屏幕呈现内容
用户隐私
隐私是 Android 10 关注的一大焦点所在。新版的改进包括系统更强的保护策略和许多在设计之初就考虑到隐私保护的新功能。在之前版本的基础上,Android 10 引入了大批更改以保护隐私并为用户提供控制权,包括改进的系统 UI、更严格的权限以及对应用程序可以使用的数据作出限制等。有关如何在你的应用中支持这些内容的详细信息,请访问 Android 10 开发者网站:https://developer.android.com/about/versions/10/privacy/
让用户更好地控制位置数据:用户可以通过新的权限选项更好地控制他们的位置数据——他们现在可以要求应用仅在应用实际使用时(在前台运行)才能访问位置信息。对于大多数应用程序而言这样的访问级别就足够了;而对于用户来说,新的策略大幅提升了透明度和控制能力。要了解有关位置更改的更多信息,请参阅开发人员指南或我们的博文:https://android-developers.googleblog.com/2019/03/giving-users-more-control-over-their.html
在网络扫描中保护位置数据:大多数扫描网络的 API 都会请求宽泛的位置权限。Android 10 现在要求这些 API 请求严谨的位置权限,提升了隐私保护水平。
防止设备跟踪:应用程序无法再访问可用于跟踪用户的不可重置设备标识符,包括设备 IMEI、序列号等类似标识符。默认情况下,设备连接到 Wi-Fi 网络时的 Mac 地址也是随机的。参阅最佳实践以帮助你为各种使用场景选择正确的标识符:https://developer.android.com/training/articles/user-data-ids,并在此处查看详细信息:https://developer.android.com/about/versions/10/privacy/changes#non-resettable-device-ids
保护外部存储中的用户数据:Android 10 引入了许多更改,使用户可以更好地控制外部存储中的文件及其中的应用程序数据。应用程序可以将自己的文件存储在其私有沙箱中,但必须使用 MediaStore 访问共享媒体文件,并使用系统文件选择器访问新的 Downloads 文件夹中的共享文件。在这里了解更多信息:https://developer.android.com/about/versions/10/privacy/changes#scoped-storage
阻止不必要的中断:Android 10 会阻止从后台启动的应用程序意外地跳转到前台并从其他应用程序接管焦点。在这里了解更多信息:https://developer.android.com/about/versions/10/privacy/changes#background-activity-starts
安全
在 Android 平台上,我们一直在努力评估已有安全措施的水平,我们将此称为可衡量的安全性。评估我们现有安全策略的一种方法是参考第三方分析研究报告,如 Gartner 的 “2019 年 5 月移动操作系统和设备安全:平台对比”报告(https://www.gartner.com/en/documents/3913286),Android 系统在 30 个类别中的 26 个获得最高评级,从身份验证到网络安全和恶意软件防护等诸多领域获得领先地位。在这里可以详细了解我们在量化可衡量安全性方面的长期工作。但是安全领域没有终点线。我们在 Android 10 中引入了更多功能,改进了加密、平台强化和身份验证来保护用户的信息安全。
存储加密:所有搭载 Android 10 的兼容设备都需要加密用户数据。为了提高效率,Android 10 还引入了新的加密模式,名为 Adiantum:https://source.android.com/security/encryption/adiantum
默认使用 TLS 1.3:Android 10 还默认启用 TLS 1.3,这是 TLS 标准的重大 修订版本,具有更好的性能和增强的安全性:https://developer.android.com/about/versions/10/behavior-changes-all#tls-1.3
平台强化:Android 10 还对平台的几个关键安全领域作出了强化,并更新了 BiometricPrompt 框架,在隐式和显式认证流程中提供了对面部和指纹识别的稳健支持。在此处阅读有关 Android 10 安全更新的更多信息:https://android-developers.googleblog.com/2019/05/whats-new-in-android-q-security.html
相机和媒体
照片的动态深度:应用程序现在可以请求动态深度图像,该图像由 JPEG 数据、包含深度相关信息的 XMP 元数据以及嵌入在同一文件中的深度和置信度图组合而成。它可以让你在应用中提供专业的模糊和景深选项。动态深度是向生态系统开放的格式,我们正在与合作伙伴合作,将其引入运行 Android 10 及更高版本的设备中。
使用动态深度图像,你可以在应用程序中提供专业的模糊和景深选项
音频回放捕获:现在任何播放音频的应用都可以让其他应用使用新的音频回放捕获 API 捕获其音频流。除了启用字幕外,这一 API 还能用于游戏直播等流行使用场景。我们在构建这一新功能时考虑到了隐私和版权保护需求,因此应用程序捕获其他应用程序音频的能力是有限制的。在我们的博文中了解更多信息:https://android-developers.googleblog.com/2019/07/capturing-audio-in-android-q.html
新的音频和视频编解码器:Android 10 增加了对开源视频编解码器 AV1 的支持,帮助媒体提供商使用更少的带宽将高质量的视频内容传输到 Android 设备上。此外 Android 10 还支持 Opus 音频编码技术——这是一种针对语音和音乐流优化的开放免费编解码器。Android 10 还为具备硬件条件的设备提供了针对高动态范围视频的 HDR10+ 支持。
原生 MIDI API:对于使用 C++ 处理音频的应用程序,Android 10 引入了一个 原生 MIDI API,通过 NDK 与 MIDI 设备通信。这一 API 允许使用非阻塞读取在音频回调内检索 MIDI 数据,从而实现 MIDI 消息的低延迟处理。在这里可以尝试示例应用程序和源代码:http://github.com/googlesamples/android-ndk/tree/master/native-midi
Vulkan 无处不在:现在,运行 Android 10 及更高版本的所有 64 位设备都要求支持 Vulkan 1.1,所有 32 位设备则推荐支持。我们已经看到生态系统正在大力推进 Vulkan——在运行 Android N 或更高版本的设备中,已有超过一半支持 Vulkan 1.0.3 或更高版本。在 Android 10 的新需求刺激下,我们预计未来一年内 Vulkan 的普及率将进一步提升。
网络连接
点对点和互联网连接改进:我们重构了 Wi-Fi 堆栈以改善隐私保护和性能表现,还改进了物联网设备管理和互联网连接建议等常见功能——它们不再需要获得位置许可了。通过网络连接 API 可以更轻松地通过本地 Wi-Fi 管理物联网设备,完成配置、下载或打印等点对点操作。网络建议 API允许应用向用户显示首选的 Wi-Fi 网络来连接到互联网。
Wi-Fi 性能模式:应用程序现在可以请求自适应 Wi-Fi,从而启用高性能和低延迟模式。较低的延迟对很多用户需求(例如实时游戏、主动语音呼叫等类似场景)来说有很大帮助。这一平台与设备固件配合,以最低的功耗满足需求。
Android 基础改进
ART 优化:改进的 ART 运行时可帮助你的应用程序更快地启动,消耗更少的内存,并且运行更顺畅——这一切都无需你的干预。Google Play 提供的 ART 配置文件可以让 ART 预编译你的应用程序的部分内容。在运行时,次世代垃圾收集机制提升了垃圾收集效率、降低了 CPU 占用率、减少了垃圾,并帮助应用程序在低端设备上运行更流畅。
使用 Play 配置文件测试部分应用的启动时间改善情况。
神经网络 API 1.2:我们增加了 60 个新操作,包括 ARGMAX、ARGMIN、量化 LSTM 等;还带来了一系列性能优化。新的 API 为更多模型加速奠定了基础——例如用于物体检测和图像分割的模型等。我们正在与硬件供应商和流行的机器学习框架(如 TensorFlow 合作,以对 NNAPI 1.2 提供优化,加速其普及。
更快的更新,更新鲜的代码
Android 10 发布后我们将更快地推动新平台的普及,并与设备制造商和高通等芯片合作伙伴密切合作。Treble 项目发挥了关键作用,帮助我们将 18 款合作伙伴设备与 8 款 Pixel 设备纳入今年的 Beta 计划——这个数字比去年增加了一倍多。我们希望这些设备能够在今年年底之前就能获得官方的 Android 10 更新,我们还在与几个合作伙伴合作,为一些新的旗舰设备准备更新。Android 10 的发展势头良好,未来几个月内将有众多设备获得这一新版本的更新,普及速度快过以往任何一代版本。
Android 10 也是第一个支持 Mainline 项目(官方称为 Google Play 系统更新)的版本,这是我们用来保护 Android 用户并保持设备更新的新技术——直接通过 Google Play 发布重大代码更新。借助 Google Play 系统更新,我们可以在运行 Android 10 及更高版本的所有设备上更新特定的内部组件,而无需设备制造商进行完整的系统更新。我们期待在未来几个月内为消费者设备带来首次更新。
对于开发人员,我们希望 Android 10 中的这些更新有助于推进各种设备之间的平台一致性。随着时间推移,不断提升的一致性将降低你的开发和测试成本。
让你的应用为Android 10做好准备
随着今天 Android 10 公开发布,很多设备也即将收到更新,我们请所有 Android 开发人员尽快更新你现有的应用程序来适配新版系统,以便让你的用户顺利过渡到 Android 10 上。
具体做法:
在 Android 10 上安装你的应用:从 Google Play 上将你现有的应用安装到 Pixel 或其他运行 Android 10 的设备上,模拟器亦可,然后进行测试。你的应用应该能正常运行,具有完整功能,并且可以正确处理所有 Android 10 行为更改。需要观察隐私更改、手势导航、仿生库动态链接器路径更改等影响。
测试 Android 10 隐私功能,例如新的位置权限、范围存储、后台活动启动 限制、数据和标识符更改等。请参阅隐私更改 关键清单,并查看隐私 更改文档以了解更多需要测试的方面:https://developer.android.com/about/versions/10/privacy/changes
测试受限制的非 SDK 接口,并转用公共 SDK 或 NDK 等效。细节参阅这里:https://developer.android.com/about/versions/10/non-sdk-q
测试应用中的库和 SDK:如果发现问题,请尝试更新到最新版本的 SDK,或与 SDK 开发人员联系以获取帮助。
更新并发布兼容新版系统的应用:完成测试并作出更新后,我们建议你立即发布兼容新版系统的应用。这样你的用户在更新到 Android 10 时就能顺利过渡了。
测试应用程序并为新版 Android 做好准备是新平台在整个生态系统中快速普及的关键一步,因此请尽可能优先处理此项工作。
使用Android 10功能和API增强你的应用程序
接下来,当你准备好之后就可以深入了解 Android 10,探索你的应用可以使用的新功能和 API。以下是一些主要功能的介绍。
我们推荐所有应用使用下列功能:
黑暗主题:应用可以通过添加黑暗主题或启用强制黑暗界面,为启用系统全局黑暗主题的用户带来一致的体验。
手势导航:在应用中提供手势导航来充分利用屏幕空间,确保你的自定义手势与系统导航手势互补协调。
为可折叠设备优化:应用为可折叠设备优化后,可以在这类创新设备上提供无缝体验。
我们推荐相关应用使用下列功能:
更多交互式通知:如果你的通知包含消息,请在通知中启用智能回复以吸引用户注意力,并让他们立即采取回应。
更好的生物识别技术:如果你使用生物识别身份验证,请转到 BiometricPrompt 框架,这是在现代设备上支持指纹身份验证的首选方式。
音频回放捕获:为了支持字幕或游戏录制,可以在你的应用中启用音频回放捕获——从而吸引更多用户,并使你的应用更易于访问。
更好的编解码器:媒体应用可以尝试在视频流上使用 AV1 编码器,为高动态范围视频上启用 HDR10+。对于语音和音乐流,你可以使用 Opus 编码;音乐创作应用还可以使用原生 MIDI API。
更好的网络 API:如果你的应用程序通过 Wi-Fi 管理物联网设备,请尝试使用新的网络连接 API 来执行配置、下载或打印等功能:https://developer.android.com/guide/topics/connectivity/wifi-bootstrap
要了解所有新功能和更改的详细信息,请访问 Android 10 开发者网站:https://developer.android.com/about/versions/10/
要开始开发工作,请将官方 API 29 SDK 和工具下载到 Android Studio 3.5 或更高版本上。然后按照这些说明配置你的环境:https://developer.android.com/about/versions/10/setup-sdk
Android 10首次发布在Pixel手机上
Android 10 将于今天开始向三代 Pixel 手机——Pixel 3(和 3a)、Pixel 2,甚至是原版 Pixel 发布更新!所有 Pixel 设备都将在下周获得更新,包括那些参加今年 Beta 计划的设备。如果你拥有一台 Pixel 设备,请关注即将推出的官方线上更新!
与往常一样,针对 Pixel 设备的系统映像可以手动下载和更新,你可以通过 Android Studio 中的 SDK Manager 获取最新的 Android Emulator 系统映像。对于其他兼容 Treble 的设备,可在此处获得通用系统映像(GSI)进行测试。
如果你正在寻找 Android 10 源代码,可以在 Android 开源项目存储库 中的 Android 10 分支中获取:https://source.android.com/
未来计划
我们很快就会关闭 Android Beta 问题跟踪和反馈应用,但请继续向我们提交反馈意见!你可以在 AOSP 问题跟踪器中针对 Android 10 提交新问题:https://issuetracker.google.com/issues/new?component=190923&template=841312
再次感谢今年参与 Android Beta 计划的众多开发者和早期试用者!你们给了我们很好的反馈,并提交了数千个问题,帮助我们为消费者和开发人员打造出了非常优秀的 Android 10 平台。
我们期待在 Android 10 上看到你的应用!
英文原文:https://android-developers.googleblog.com/2019/09/welcoming-android-10.html
活动推荐
领取专属 10元无门槛券
私享最新 技术干货