[转] https://mlog.club/article/34749
[外链图片转存失败(img-bv1ajjHb-1568284849887)(https://mlog.club/api/img/proxy?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FrFWVXwibLGtyCU1SrC4tDeGJlVXv1TC9feIoOF7GSiba80L6pWvAqvP8qSfmXIzoibooE3rHtWYAXBLWJYQiaic2J9w%2F640%3Fwx_fmt%3Dpng)]
Android 10 聚焦移动创新、安全隐私和数字健康三大主题,全面打造最佳用户体验。
《Android 10 的十大技术创新》
Android 10 提供强大的多屏幕支持,扩展了现有的同屏多任务功能,方便用户在应用间进行窗口切换。此外,屏幕连续性也有所改善,帮助应用在设备展开或折叠时保持界面状态。如果想了解更多有关折叠屏适配的内容,请阅读《打造适用于可折叠设备的应用》官方文档。
《打造适用于可折叠设备的应用》
5G 技术可大幅提高数据传输速度并降低延迟。Android 10 提供 5G 平台支持,并对现有 API 进行了扩展,全面助力开发者利用 5G 技术推动应用创新。您可调用网络连接 API (connectivity API) 判定设备是否可以高速联网,以及当前的网络是否计费。透过这些能力,希望您能开发出更加丰富的沉浸式 5G 体验应用。
现有 API
可以为正在播放的多媒体文件自动生成字幕。该功能支持任何应用中的多媒体文件,包括视频、播客和语音信息。机器学习语音模块在离线运行,所有音频流不会离开设备。开发者可自行选择是否添加 Live Caption 功能,但我们相信一旦启用后,该功能可以为您的应用和游戏带来更多用户。Pixel 设备将在今秋引入 Live Caption,我们也在和各大厂商积极合作,希望尽快在 Android 10 设备上普及这项功能。
自行选择
[外链图片转存失败(img-8QsZPSBw-1568284849890)(https://mlog.club/api/img/proxy?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FrFWVXwibLGtyCU1SrC4tDeGJlVXv1TC9fiaicL3BlqiclZqJp95ymGElAZeKicFPWkqwTibHxzHWN0icdrBojlCHV8AvQ%2F640%3Fwx_fmt%3Dpng)]
视频地址: https://www.youtube.com/watch?v=YL-8Xfx6S5o
Android 10 利用设备内置机器学习技术,在通知中显示与当下场景相关的建议操作,例如消息智能回复,或者当通知中包含地址信息时,建议用户开启地图应用。我们在开发这项功能时也考虑到了用户隐私问题,因此所有的机器学习任务完全在设备本地执行。不如立即上手一试,为应用添加由系统生成的回复和操作;当然,如果您想自行为应用设计通知内容,亦可选择停用该功能。
停用
[外链图片转存失败(img-SMJ0zOVO-1568284849893)(https://mlog.club/api/img/proxy?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FrFWVXwibLGtyCU1SrC4tDeGJlVXv1TC9fmIH2NnUSeIicoUPGHfchRHy1icXmaUiaC8M50Inb19y5ydasPdia0aM3fQ%2F640%3Fwx_fmt%3Dpng)]
智能回复功能会根据通知内容向用户提供建议操作
Android 10 添加了系统全局深色主题,让用户可以在光线较暗的环境中更轻松的使用设备,并且大幅度减少设备耗电量。您可为应用添加自定义深色主题,或者让操作系统为现有主题动态创建一个深色版本。更多技术细节,请参阅《深色主题》官方文档。
《深色主题》
[外链图片转存失败(img-vuZ1MC25-1568284849894)(https://mlog.club/api/img/proxy?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FrFWVXwibLGtyCU1SrC4tDeGJlVXv1TC9fFkNmcydgY7bS1FhE4wCr5AYicRyOiaCiaRibIywRF5RCJa4gXqeiaaY0LnQ%2F640%3Fwx_fmt%3Dpng)]
深色主题背景下的 Google Keep
Android 10 引入了手势导航模式,这一功能启用后,原有的底部导航栏设计会消失,让应用真正实现全屏显示,为用户创造更丰富、沉浸度更高的数字体验。请阅读《手势导航》官方文档,学习具体的优化步骤。
《手势导航》
[外链图片转存失败(img-z6IrosAF-1568284849894)(https://mlog.club/api/img/proxy?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2FrFWVXwibLGtyCU1SrC4tDeGJlVXv1TC9fJ0PXJNjY6DEoN5Mib6iaQIxOueCRKssmMjbT2hdKDFOLwKQodEr0WkMg%2F640%3Fwx_fmt%3Dgif)]
用户隐私是 Android 10 的开发重点之一,从平台的安全性改进,到以隐私为中心的新特性设计,团队从多个维度发力,为用户提供最强大的安全保护。为了提供更好的隐私保护并提高用户可控性,Android 10 在之前几个版本的基础上引入了多项变更,例如: 改进系统 UI,更严格的权限管理和数据使用限制等。请前往 Android 10 开发者官网,了解更多技术细节,学习如何在应用中支持这些变更。
Android 10 开发者官网
为了提高用户的可控性,用户可以通过一个全新的地理位置权限,仅允许正在被使用的应用 (运行在前台) 访问设备位置信息。该权限等级能够满足大部分应用的要求,同时也更好地保障了数据透明和权限控制方面的用户权益。请阅读《定期接受位置更新》和《Android Q 让用户优雅地管理位置权限》,获取更多有关位置权限变更的相关信息。
《给予用户更多地理位置控制》
[外链图片转存失败(img-jhnYVDHW-1568284849895)(https://mlog.club/api/img/proxy?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FrFWVXwibLGtyCU1SrC4tDeGJlVXv1TC9ffDjM6aQRrSUFxYym1T6dQibes7ESoR5ad2ulqibaI2XuXU3CYk1Bic8Qg%2F640%3Fwx_fmt%3Dpng)]
大部分网络扫描 API 已要求获取 COARSE 位置权限,但是 Android 10 加强了这些 API 的安全防护,要求必须获取 FINE 位置权限。
要求必须获取 FINE 位置权限
为了防止应用追踪设备,Android 10 不允许一般应用访问 IMEI 码、序列号等不可重置的设备识别号。当应用连接至 Wi-Fi 网络时,设备的 MAC 地址将默认被随机化处理。请仔细阅读最佳实践,为您的用例选择正确的识别号。更多内容,请阅读《Android 10 隐私权变更: 不可重置的设备识别号限制》官方文档。
Android 10 引入多项变更,给予用户更多控制权用于管理外部储存中的文件以及其中的应用数据。应用可以在私有沙盒中储存自有文件,但是必须使用 MediaStore 才能访问共享多媒体文件,或使用系统选择器来访问下载集合中的共享文件。请阅读《Android 10 隐私权变更: 外部储存中的应用文件及多媒体》,获取更多内容。
Android 10 禁止应用突然从后台跳转至前台,分散用户对当前应用的注意力。更多内容,请参阅《Android 10 隐私权变更: 针对后台 Activity 启动的限制》官方文档。
我们不断地评估在 Android 安全方面地投入,我们将其称之为可衡量的安全。第三方机构发布的分析报告是重要的参考依据之一,比如说,Gartner 在 5 月发布了一份《2019 年度移动操作系统和设备安全报告》(订阅后才能阅读完整版报告),该报告针对身份验证、网络安全、恶意软件防护等 30 个项目进行打分,Android 在其中 26 项上夺得最高分。如果您想知道我们在改善平台安全方面作出了哪些长期努力,请阅读《量化可衡量的安全》。不过,安全防护是一场没有终点的探索,因此,我们为 Android 10 引入了更多的安全特性,围绕加密技术、平台加固和身份认证进行了多方位升级。
们要求所有出厂系统为 Android 10 的兼容设备都必须对用户数据进行加密。为了提高储存加密效率,Android 10 提供了一个新的加密模式——Andiantum。
Android 10 默认启用 TLS 1.3 支持。作为 TLS 标准的一次重要更新,TLS 1.3 在性能和安全方面均有显著提升。
Android 10 强化了平台内几大关键安全领域的防护工作,并更新了 BiometricPrompt 底层框架,增强了隐式和显式验证流程中对面部识别和指纹识别的支持。更多内容,请阅读《Android Q 中的安全性更新》。
应用可在支持设备上请求生成动态深度图片,文件内包含与深度元素相关的 JEPG 与 XMP 元数据,并内嵌一组深度置信图。它可帮助您在应用中实现模糊或散景效果。动态深度是一款供所有生态圈伙伴使用的开放格式。目前,我们正在与各大设备厂商展开密切合作,希望尽早普及 Android 10 (以及未来版本系统) 设备对该图片格式的支持。
开放格式
[外链图片转存失败(img-C4kWKlBB-1568284849896)(https://mlog.club/api/img/proxy?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FrFWVXwibLGtyCU1SrC4tDeGJlVXv1TC9fcyULwjlRHeJ55deVIJIbop6Ubibof5PtXQTbNXE9MDpnvqCNvHGicYcg%2F640%3Fwx_fmt%3Dpng)]
所有支持音频播放的应用均可允许另一个应用通过全新的音频回放捕捉 API 获取自己的音频流。该 API 能够让您实现添加字幕、游戏直播等热门用例。我们在开发这项功能时也考虑到了用户隐私和版权问题,因此跨应用获取音频的能力受到一定的限制。更多内容,请阅读《Android Q 音频获取指南》。
Android 10 为开源视频编解码器 AV1 添加了支持,媒体供应商只需更少的带宽就能将高质量视频内容传输至 Android 设备上。Android 10 还支持 Opus 编码的音频内容,Opus 是一款专为语音和音乐流媒体文件推出的免费开源编解码器。此外,用户也可在支持 HDR 10+ 的设备上,播放高动态范围视频 。
只需更少的带宽
https://en.wikipedia.org/wiki/AV1#Quality_and_efficiency
Opus
http://opus-codec.org/
HDR 10+
https://en.wikipedia.org/wiki/High-dynamic-range_video#HDR10+
针对使用 C++ 代码处理音频文件的应用,Android 10 引入了一款原生 MIDI API,让应用可以通过 NDK 与 MIDI 设备进行通讯。应用可在音频的回调函数中通过非阻塞方式读取 MIDI 数据,达到低延迟的 MIDI 信息处理效果。欢迎大家试用参考示例应用,并参考其源代码。
我们要求所有运行 Android 10 或更高版本系统的 64 位设备必须支持 Vulkan 1.1,对于 32 位设备则为推荐配置。我们已经看到了 Android 生态圈对 Vulkan 的强力支持,在运行 Android N 或更高版本的设备中,超过半数提供了 Vulkan 1.0.3 (或更高版本) 支持。随着 Android 10 的新规定落地,我们预计会有更多设备在未来一年内支持 Vulkan。
在 Android 10 中,我们对 Wi-Fi 堆栈进行了重构,这不仅提升了应用在隐私及性能方面的表现,而且对许多常见用例也有一定的优化,如 IoT 设备管理、显示可用网络等——均无需请求位置权限。网络连接 API (connectivity API) 让您可以更轻松地管理 IoT 设备,并使用配置、下载和打印等 P2P 功能。网络建议 API (network suggestion API) 允许应用向用户显示推荐的 Wi-Fi 作为网络连接选项。
网络连接 API
网络建议 API
Android 10 允许应用启用高性能、低延迟的自适应 Wi-Fi 模式,这样一来,即使是在网络延迟比较敏感的场景下,如实时游戏、音频通话等,应用依旧能保障流畅的用户体验。在性能模式下,Android 平台将配合设备固件协同工作,实现最低能耗。
Android 10 针对 ART 运行时引入了多项改进。开发者无需进行任何操作,便可有效缩短应用的启动时间,减少内存消耗,保证流畅运行。Google Play 交付的 ART 配置文件允许 ART 在应用运行之前就预编译一部分代码。在运行时,分代垃圾回收 (Generational GC) 机制使得 CPU 利用效率有了明显提升,在减少卡顿的同时,让应用得以在低端设备上更好地运行。
[外链图片转存失败(img-O0qEz7X7-1568284849897)(https://mlog.club/api/img/proxy?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FrFWVXwibLGtyCU1SrC4tDeGJlVXv1TC9ftr43UABw7GT9jokf7Tl0uhnTgkJHiaX0GHEic7CX0VLsPoEy6Noao2Dw%2F640%3Fwx_fmt%3Dpng)]
我们在神经网络 API 1.2 中新增了 60 个算子,其中包括 ARGMAX、ARGMIN、量化 LSTM,以及大量的性能优化,这为模型加速奠定了坚实的基础,如目标检测模型和图像分割模型。目前,我们正在和硬件以及主流机器学习框架厂商 (如 TensorFlow) 展开积极合作,共同推进神经网络 API 1.2 的优化和支持工作。
新平台的普及依旧是 Android 10 的工作重点之一,我们继续与设备厂商以及高通等芯片合作伙伴展开紧密合作,争取更快将 Android 10 带向更多设备。Treble 项目在此扮演着十分关键的角色,在该项目的帮助下,18 款合作伙伴设备和 8 款 Pixel 设备加入了今年的 Android Beta 项目,Beta 机型数量比去年多了一倍。更棒的是,我们预期这些设备在年底之前均会收到 Android 10 的官方更新推送,与此同时,我们也在与合作伙伴携手推进新旗舰机型的发布与升级工作。我们已经感受到了 Android 10 的澎湃动力,与之前几个版本相比,将有更多用户会在接下来的几个月内亲身体验新版本系统带来的强大表现。
此外,Android 10 也是首个支持 Mainline 项目 (官方名称为 Google Play 系统更新) 的版本。Mainline 项目旨在为 Android 用户提供高质量安全保障,并且确保用户设备能够直接从 Google Play 获取最新的重要系统更新。在 Google Play 系统更新的帮助下,用于不再需要设备厂商提供全量系统更新,而可以在运行 Android 10 或更高版本的设备上直接更新特定的系统组件。我们计划在接下来的几个月内向消费者设备开始推送更新。
对于开发者而言,我们希望 Android 10 中的这些更新能够有效提高系统组件在不同设备上的一致性,为大家提供更加统一的开发体验,进而降低开发与测试成本。
Treble 项目
https://source.android.google.cn/devices/architecture
Mainline 项目
https://android-developers.googleblog.com/2019/05/fresher-os-with-projects-treble-and-mainline.html
随着 Android 10 正式发布,更多设备将很快收到更新推送,请各位开发者尽快开始升级工作,确保现有应用在新系统上的兼容性,帮助用户平滑过渡到 Android 10。
具体操作如下:
https://developer.android.google.cn/studio/run/managing-avds.html
Android 10 的各项行为变更
https://developer.android.google.cn/about/versions/10/behavior-changes-all
隐私变更
https://developer.android.google.cn/about/versions/10/privacy/changes
手势导航
https://developer.android.google.cn/guide/navigation/gesturenav
生物验证库的动态链接路径变化
https://developer.android.google.cn/about/versions/10/behavior-changes-all#bionic
新的位置权限
https://developer.android.google.cn/about/versions/10/privacy/changes#app-access-device-location
分区储存
https://developer.android.google.cn/about/versions/10/privacy/changes#scoped-storage
从后台启动 activity
https://developer.android.google.cn/about/versions/10/privacy/changes#background-activity-starts
关于数据和设备识别符方面的变更
https://developer.android.google.cn/about/versions/10/privacy/changes#data-ids
隐私特性清单
https://developer.android.google.cn/about/versions/10/privacy#top-privacy-changes
行为变更文档
https://developer.android.google.cn/about/versions/10/privacy/changes
《非 SDK 接口在 Android 10 中的受限情况出现变化》
https://developer.android.google.cn/about/versions/10/non-sdk-q
针对新版本 Android 测试并适配应用对加快整个生态圈内的平台更新速度至关重要,因此,请各位开发者尽可能优先处理 Android 应用的适配工作。
一切准备就绪后,请您尽情探索 Android 10,并了解可供应用使用的新特性与 API。我们从中挑选了一些最重要的特性,您可以从这些特性着手,逐步提升应用的性能和体验。
新特性与 API
我们建议所有应用支持以下特性:
深色主题:
为了确保用户在启用全局夜间模式后能够享受到一致的体验,请您在应用中添加深色主题,或启用 Force Dark 功能。
支持手势导航:
为用户提供边到边的视觉体验,同时确保应用的自定义手势与系统手势互相配合。
适配折叠屏:
针对折叠屏为应用进行优化,以便在现代创新设备上实现无缝体验。
深色主题
https://developer.android.google.cn/guide/topics/ui/look-and-feel/darktheme
Force Dark 功能
https://developer.android.google.cn/guide/topics/ui/look-and-feel/darktheme#force_dark
手势导航
https://developer.android.google.cn/guide/navigation/gesturenav
针对折叠屏为应用进行优化
https://developer.android.google.cn/guide/topics/ui/foldables
如果下列特性与您的应用相关,我们建议您添加相应支持:
互动性更高的消息通知:
如果您的通知中包含消息,请启用通知内的智能回复及建议操作,以增强用户互动,并让他们可以立即采取行动。
更好的生物验证支持:
如果应用需要处理生物验证用例,推荐您使用 BiometricPromt,它是在现代设备上支持指纹身份验证的首选方式。
音频回放捕捉:
如需支持字幕生成或游戏录制,请在应用中启用音频回放捕捉功能。这能让您的应用惠及更多用户,并更好地支持无障碍体验。
更好的编解码器:
媒体应用请利用 AV1 进行视频传输,并通过 HDR 10+ 播放高动态范围视频;语音和音乐应用请使用 Opus 进行音频编码。另外,我们还为音乐工作者提供了原生 MIDI API。
更好的网络连接 API:
如果您的应用通过 Wi-Fi 管理 IoT 设备,不妨试一下新的网络连接 API (network connection API) 来执行配置、下载或打印等功能。
通知内的智能回复及建议操作
请前往 Android 10 开发者官网查看完整列表。
如果您要面向 Android 10 开发应用,请将 API 29 SDK 和工具下载至 Android Studio 3.5 稳定版或更高版本,然后按照操作步骤配置环境。