Android Q 预览版功能一览 内存占用更低 体验更流畅
设备位置：让用户能够控制应用程序何时可以获得位置信息，包括应用程序何时不使用位置信息。用户可以设置应用程序无法使用位置信息，可以选择只有应用程序在运行或者在后台运行时才能使用其位置信息。存储：Android Q 开发者预览版提供对共享文件访问的更多控制。用户将能够通过权限控制应用程序对照片、视频和音频集的访问。应用程序必须使用系统文件选择器进行数据下载，这能够让用户决定应用程序可以访问哪些下载文件。开发人员还必须改变应用程序在外部存储上使用共享区域的方式。后台运行：减少应用程序意外跳出并占据屏幕等干扰。应用程序将被禁止在后台启动 Activity 组件。应用程序开发人员可以通过高优先级通知或全屏图快速吸引用户的注意力，比如来电或警报应用。用户数据 ID：Android Q 开发者预览版限制对不可重置设备标识符的访问，其中包括设备 IMEI、序列号和类似标识符。默认情况下，当连接到不同的 Wi-Fi 网络时，Android Q 也会随机分配设备的 MAC 地址。对可折叠屏幕的支持：应用程序将能够更好地适配可折叠屏幕和其他大屏幕设备。共享快捷方式：在全新操作系统下，应用程序能够与其他应用更快共享快捷方式，用户直接跳转到另一个应用共享内容的速度会变得更快。设置面板：能够在应用程序上下方直接显示关键系统设置。新的设置面板 API 使用 Android 9 Pie 中引入的 slice 功能，为用户提供一个带有相关系统设置(如 Wi-Fi、飞机模式、移动数据、NFC 和音频音量)的浮动 UI。用户无需离开应用程序进行系统设置。连接权限、隐私和安全性：对于蓝牙、蜂窝网络和 Wi-Fi 连接，需要 FINE 位置权限，从而提高设备连接家庭、工作网络以及开放网络的安全性。改进的点对点(peer-to-peer)和互联网连接：对 Wi-Fi 堆栈进行了重构，以改善隐私、性能以及管理物联网设备和建议互联网连接等常见用例。Android Q 将自行处理 Wi-Fi 扫描，在 Wi-Fi 选择列表中显示匹配网络，并在这些网络的范围内根据历史记录进行连接。Wi-Fi 性能模式：高性能和低延迟模式允许开发人员调用相应函数请求自适应 Wi-Fi。谷歌希望这些功能有助于实时游戏、活动语音呼叫等类似用例。支持动态深度图像：应用程序可以请求动态深度图像，该图像包含一个 JPEG、与深度相关的 XMP 元数据，以及嵌入在同一文件中的深度和置信度图。这使得开发人员可以支持 3D 图像和 AR 摄影等用例。动态深度将是 Android 生态系统中的一种开放图像格式。全新的音频视频编码解码器：支持开源视频编解码器 AV1，音频编码 Opus 以及 HDR10+。原生 MIDI API：这个 API 允许在 C++ 环境中执行音频处理的应用程序通过 NDK 与 MIDI 设备通信。它允许使用非阻塞读取在音频回调中检索 MIDI 数据，从而支持对 MIDI 消息(示例应用程序源代码)进行低延迟处理。支持 Vulkan 原生渲染引擎 ANGLE：对渲染引擎 ANGLE 的支持使得应用 OpenGL ES 的应用程序和游戏将能够利用 Vulkan 的性能和稳定性，自由度和开放度都非常高。Vulkan 扩展：谷歌正在与设备制造商合作伙伴合作，使所有运行 Android Q 或更高版本 64 位设备能够兼容 Vulkan 1.1。因此，Vulkan 将成为应用程序和游戏所使用的统一高性能图形 API。神经网络 API 1.2：其中包括 60 个新项目，包括 ARGMAX, ARGMIN，量化 LSTM，以及一系列性能优化。谷歌正在与硬件供应商和诸如 TensorFlow 等主流机器学习框架合作，优化对 NNAPI 1.2 的支持。ART 性能：继续改进应用运行模式，帮助应用程序启动更快，消耗更少的内存，并帮助应用程序在低端设备上运行得更好。所有 TLS 连接都默认添加并启用了对 TLS 1.3 支持。谷歌表示，其基准测试表明，与 TLS 1.2 相比，使用 TLS 1.3 可以更快建立安全连接，速度高达 40%。通过公共 API 实现更多兼容性:谷歌限制了对更多非 SDK 接口的访问，并要求开发人员使用公共接口。
Android Q Beta 正式发布 | 优化 P2P 及网络连接 新的音频及视频解码器
优化 P2P 及网络连接在 Android Q 中，我们对 Wi-Fi 堆栈进行了重构，这不仅提升了应用在隐私及性能方面的表现，而且对许多常见用例也有一定的优化作用，如 IoT 设备管理，显示可用网络等，无需请求位置权限。网络连接 API 让您可以更轻松地管理 IoT 设备，并使用配置、下载和打印等 P2P 功能。应用通过将 SSID 和 BSSID 中的偏好设置指定为 WiFiNetworkSpecifiers, 间接发起网络连接请求；系统负责扫描附近的 Wi-Fi，并在 Wi-Fi 选择器中显示匹配结果。当用户选择网络后，系统会自动设置网络连接。WiFiNetworkSpecifiershttps://developer.android.google.cn/reference/android/net/NetworkSpecifier.html网络建议 API 允许应用用户显示推荐的网络选项。应用会对网络和证书进行排名，并将该列表作为 WifiNetworkSuggestions，以此来间接发起网络连接。随后，系统便会根据用户的历史偏好，从列表中挑选出最合适的选项，并建立无缝连接。WifiNetworkSuggestionshttps://developer.android.google.cn/reference/android/net/wifi/WifiNetworkSuggestionWi-Fi 性能模式您现在可以在 Android Q 中启用高性能、低延迟的自适应 Wi-Fi 模式，这样一来，即使是在网络延迟比较敏感的场景下，如实时游戏、主动呼叫等，依旧能保障流畅的用户体验。如需启用新的性能模式，请通过 WIFI_MODE_FULL_LOW_LATENCY 或 WIFI_MODE_FULL_HIGH_PERF 调用 WifiManager.WifiLock.createWifiLock()。在这些模式下，Android 平台将配合设备固件协同工作，实现最低能耗。WifiManager.WifiLock.createWifiLock()https://developer.android.google.cn/reference/android/net/wifi/WifiManager.html#createWifiLock新的音频及视频解码器Android Q 现已支持开源视频解码器 AV1，媒体供应商只需更少的带宽就能将高质量视频内容传输至 Android 设备上。我们还添加了对 Opus 音频格式的支持。Opus 编码器能自动识别输入信号是语音还是音乐，然后据此选择优化的编码模式。此外，用户也可在支持 HDR 10+ 的 Android Q 设备上，播放高动态范围视频。AV1https://en.wikipedia.org/wiki/AV1更少的带宽https://en.wikipedia.org/wiki/AV1#Quality_and_efficiencyOpushttp://opus-codec.org/HDR 10+https://en.wikipedia.org/wiki/High-dynamic-range_video#HDR10+MediaCodecInfo API 可帮助开发者更轻松地判定 Android 设备的视频渲染能力。您可调用 VideoCodecCapabilities.getSupportedPerformancePoints() 获取现有解码器所支持的文件大小和帧率，以确保设备能够播放最佳质量的视频内容。MediaCodecInfo APIhttps://developer.android.google.cn/reference/android/media/MediaCodecInfo原生 MIDI API针对使用 C++ 代码处理音频文件的应用，Android Q 添加了原生 MIDI API，让应用可以通过 NDK 与 MIDI 设备进行数据传输。应用可在音频的回调函数中使用非阻塞读取来检索 MIDI 数据。欢迎大家查看参考示例应用及其源代码。原生 MIDI APIhttps://developer.android.google.cn/preview/features/midi参考示例应用及其源代码https://github.com/googlesamples/android-ndk基于 Vulkan 的 ANGLE 渲染引擎我们正在努力行动争取为 Vulkan 设备带去可更新的标准化 OpenGL 引擎。Android Q 在 Vulkan 的基础上为 Android 设备添加了 ANGLE 支持。ANGLE 是一款专为高性能 OpenGL 功能实现打造图像抽象层。有了 ANGLE 之后，使用 OpenGL ES 进行开发的应用和游戏便可直接体验 Vulkan 带来的强劲性能与高稳定性，并了在 Android 设备上部署统一且不受供应商限制的 ES 实现。我们计划在 Android Q 中引入 OpenGL ES 2.0 支持，此外，针对 ES 3.0 的支持也在密集筹划中。ANGLEhttps://chromium.googlesource.com/angle/angle/+/master/README.md今后，我们会继续拓展 Android 设备上的 ES 实现，为开发者带去更多的 OpenGL 功能，错误修复和性能优化项。请阅读相关文档，了解 Android 对 ANGLE 的现有支持，具体操作以及后续发展计划。如果您想在应用内测试 ANGLE 初期支持，请在设置中启用开发者选项。心动不如行动，不妨立即上手试一下吧！相关文档https://developer.android.google.cn/preview/features#angle随时随地，尽享 VulkanVulkan 是一款面向 3D 图形渲染推出的革命性 API，具备低消耗、高性能、跨平台等优势，我们将继续扩展 Vulkan 在 Android 平台上的应用范围，努力将其打造成一款支持范围广、一致性高的图形 API。目前，我们已多家设备厂商达成合作，有望在运行 Android Q 或更高版本系统的设备上加入 Vulkan 1.1，其中，64 位设备为硬性要求，而对于 32 位设备则为推荐配置。通过与生态圈伙伴的开放合作，我们希望在将来为应用和游戏开发者们提供一套标准的高性能图形 API。Vulkanhttps://www.khronos.org/vulkan/Vulkan 在 Android 平台上https://developer.android.google.cn/ndk/guides/graphics/更多详情查看：https://mp.weixin.qq.com/s/ugl45pU6B7XmWKQkPUJcHA