本文来自微信公众号:少数派(ID:sspaime),作者:黎明前线Alan,原文标题:《Android 一年一更新的大版本来了,你不能错过这 10+ 个新功能》,头图来自:Android Central 各家基于 Android 11 的定制系统刚刚推送不久,Google 这边就紧锣密鼓开启了下一个大版本的更新节奏 —— 2 月 19 日凌晨,Android 12 首个开发者预览版(下文简称 Android 12 DP1)正式上线,版本号一年一更新之外,Android 12 将带来哪些新功能和新特性,它们又将如何影响接下来的 Android 软件体验? 欢迎来到少数派 2021 年的第一篇 Android“具透”。 Pixel 2 无从“尝鲜”,正式版秋季到来 和去年的 Android 11 一样,本次 Android 12 正式版发布前依然会在接下来的半年多时间里以每月 1 次的更新频率先后放出 3 个开发者预览版和 4 个 Beta 测试版,其中 5 月的首个测试版预计将在今年的 I/O 大会后同步放出,届时 Android 12 的 Beta 测试项目[1] 应该也会上线。 Android 12 开发测试时间线 在 Beta 测试页面上线前,部分 Pixel 用户可以通过手动刷入开发者预览版镜像的方式来进行升级体验。符合本次测试要求的 Pixel 设备包括: Pixel 3/3 XL Pixel 3a/3a XL Pixel 4/4 XL Pixel 4a/4a 5G Pixel 5 如果你持有上述设备,可以使用最近比较流行的在线刷机工具[2] 直接安装,或前往参考链接[3] 下载对应的完整版工厂镜像,然后按照常规刷入方法进行刷入。当然了 —— 请注意备份数据,另外不建议在主力设备上使用开发者预览版本。 界面变化不大,但融合趋势越发明显 具体到本次的 Android 12 DP1。每次更新后我们首先会注意到的应该都是界面和交互上的变化,虽然此前曝光过的那组疑似为 Android 12 的截图[4] 让人对新版本格外期待,但首个开发者预览版中我们几乎没有看到太大的视觉样式更新。 事实证明这很有可能是“飞机稿” 不过从现有内容来看,上述截图和之前外媒曝光过的深度主题定制[5] 功能也都不是毫无根据,Android 12 DP1 中大量系统界面都换上了一层浅蓝色背景,与 Pixel 默认的蓝色主题相呼应,覆盖界面包括所有二级系统设置界面、快速设置开关按钮、生物信息识别弹窗等等。不过目前这个配色还无法像已曝光截图那样根据壁纸进行取色,在“样式与壁纸”设置中更改系统配色也无法对其造成影响。 更改系统配色(图三)也无法影响全局浅蓝色背景 Pixel Launcher 新增了 4x5 的网格样式,除此之外界面定制功能相比 Android 11 几乎没有太多新功能,主题定制的相关选项可能要等到 5 月的首个 Beta 测试版本才会上线。 来到设置界面,用户头像从搜索框中被单独拿了出来,并且拥有了更大的尺寸,功能上相比 Android 11 则没有变化。 Android 11 vs. Android 12 DP1 另外,Android 12 DP1 也在不少设置界面引入了新的开关控件样式,新样式相比旧版更加扁平,同时在开、关状态下都有对应的符号提示,颇有几分 iOS 的味道: 新的开关样式 一些设置项目也得到了整合,比如注视亮屏功能就拿到了屏幕超时选项下方,更加符合索引和归类逻辑;同时 Wi-Fi 二维码分享界面下方也直接提供了“就近分享”按钮,如果对方的手机支持这一功能,可以直接跳过扫描二维码的步骤连接 Wi-Fi。 值得一提的是,Google 在 Android 12 DP1 中其实还暗藏了一个全新的设置样式:将手机连接至电脑后,通过如下 adb 命令即可为 Android 12 DP1 的设置界面开启一个名为 Silky Home 的新版 UI: adb shell settings put global settings_silky_home true Silky Home One UI、Oxygen OS 用户对这样的 UI 应该不会陌生,无论是屏幕上方标题栏的大面积留白还是更大的设置菜单图标,Android 12 DP1 这一隐藏 UI 的设计思路都与 OEM 厂商的设计思路一致 —— 对单手操作更加友好。不过这一设计风格对 Google 而言目前也还停留在设置界面,毕竟 Google 自家应用尚未就这种设计规范做出任何相关的适配。 最后,暗色主题也有了小幅调整,通知中心和快速设置面板在暗色主题下的背景色调整为灰色,更加符合 Google 的暗色主题设计规范和无障碍标准,不过设置界面依然采用的纯黑背景,不知道后续更新会不会得到翻新。 手势操作查漏补缺,也在探索新交互 从界面来到交互,Android 10 引入全面屏手势以来 Google 围绕这套新的交互方式做了不少 修补工作[6] 来确保其兼容性和可用性。尽管目前大部分国内应用连“边到边(edge to edge)”适配都尚未完成,Google 对全面屏手势交互的完善没有止步。 我们首先区分几个概念。在 Android 平台上,让应用全屏显示的方式(全屏模式[7])分为回调模式、沉浸模式和粘性沉浸模式三种,其中回调模式和沉浸模式对应的又可以被统称为非粘性沉浸模式: 其中非粘性沉浸模式的代表是 Google Photos,即当我们全屏查看照片时系统栏(主要是状态栏和手势横条)会自动隐藏,但我们可以随时通过点击、划动行为退出全屏;游戏玩家则对粘性沉浸模式更加熟悉,在这种全屏模式下,我们需要首先在屏幕边缘向内滑动一次呼出边缘的手势横条和顶部的状态栏,然后再滑动一次才能触发手势操作返回主屏。 Android 10 引入的全面屏手势在非粘性沉浸模式下此前一直存在“连续性”问题,在上面的“使用 Google Photos 全屏查看照片”这一例子中,返回、回到主屏等高优先级操作需要进行两次划动才能触发。 Android 11 中系统栏隐藏的状态下无法使用全面屏手势 Android 12 DP1 就对非粘性模式下的手势操作进行了精简,具体而言: 使用按键导航模式(即“三大金刚”)时,退出非粘性沉浸模式的视觉反馈和操作步骤都没有变化; 使用全面屏手势时,系统可以在系统栏未被呼出的状态下直接响应手势操作,不管是返回、Home 还是下拉通知栏都只需要一次操作。 实际效果如下: Android 12 中系统可以在非粘性沉浸模式下直接响应全面屏手势操作 值得一提的是,因为游戏、视频等应用一般会采用粘性沉浸模式所以不会受到这一改动的影响,我们自然也不必担心这个改动会带来误触问题。 除了全面屏手势,Google 也在 Android 12 DP1 中埋下了一些尚未正式上线的实验性交互功能。 首先是背部敲击手势,这项去年曾经在 Android 11 代码中出现过的功能这次直接出现在了 Pixel 5 的手势设置当中,从设置项来看 Google 为 Pixel 手机的背部敲击手势准备了唤醒语音助理、控制媒体播放、截屏等诸多自定义操作,同时还提供了防误触设定(Require harder taps)。 图:9to5Google 有些奇怪的是,背部敲击手势在 Android 12 DP1 中仅开放给了 Pixel 5,没有后置指纹识别传感器、更适合这一交互方式的 Pixel 4/4XL 暂时无缘;同时 Pixel 5 上这一功能目前也仅仅只提供了开关,开启后并无实际作用。 另外,Google 似乎也在为开发原生的“单手模式”。从 XDA 主编 Mishaal Rahman 开启相关隐藏功能后发布的视频[8] 来看,和目前 OEM 厂商普遍使用的缩放至屏幕边角的实现方式不同,Google 的单手操作模式更像是 iOS 那种下拉悬停。 图:Mishaal Rahman 通知例行“挨刀”,媒体通知还会改 对通知系统的改动几乎不会缺席历年的 Android 开发者测试版,本次 Android 12 DP1 也不例外。 首先是风格、布局都更加规范的通知样式。 Android 应用开发者一般可以通过标准通知模板[9] 来构建通知,在此基础上,还可以根据实际需要使用自定义通知模板[10] 或展开式通知模板[11] 搭建布局更加灵活、内容更加多样的通知样式。 为了展示尽可能多的通知内容同时节省开发成本,我们目前在使用的大部分应用都采用了自定义通知模板,但不同开发者的通知设计方式各不相同,因此采用自定义通知模板也常常会遇到各种影响实际通知显示效果的兼容性问题。 所以 Android 12 针对这种被 Android 开发者所广泛使用的样式进行了更新,在 Android 12 中,自定义通知样式有了新的统一设计模版,既能让不同通知尽可能保持设计风格一致,同时也能提高用户查看通知信息的效率。 新版自定义通知模板 新版自定义通知效果 此前采用自定义通知模板构建通知的应用,在 Android 12 DP 1 下的消息推送其实已经可以自动适应新样式了(下图右)。相比 Android 11 新的自定义通知样式主体图片展示区域更大,各类操作按钮也遵循通知内容进行了对齐: Android 11 vs. Android 12 DP1 其次,Android 系统自带的通知延后功能也更好用了。在原本左右滑动设置延后的基础上,Android 12 DP1 直接在通知卡片上添加了一个新的延后按钮(闹钟),让我们可以直接点击进行延后操作。 尽管已经在 Android 11 测试阶段经过多次修改、完善,Android 开发团队对媒体通知卡片还是有着更多的设计和想法。从媒体界面元素的设计上,Android 12 DP1 相比 Android 11 正式版除了卡片本身面积进一步变大之外,歌曲专辑封面也重新占据了卡片左侧近三分之一的面积,用于控制音频播放的按钮则来到了中间位置,与媒体信息靠左对齐。 锁屏的媒体通知卡片:Android 11 vs. Android 12 而在通知栏中,Android 12 DP1 更是直接将媒体卡片的左右两侧填充至与通知栏对齐,进一步增加了媒体卡片的显示面积,加上因为控件元素大多左对齐留出的空白区域,Android 12 后续更新显然还需要对媒体卡片进行更多功能与设计上的打磨。 通知栏中的媒体通知卡片:Android 11 vs. Android 12 好在虽然不怎么好看,媒体通知卡片这一机制本身倒是更加完善了。Android 12 DP1 为媒体卡片引入了应用选择功能,我们可以在“设置 > 提示音与震动 > 媒体 > 快捷设置中的媒体播放器”中选择可以显示在快捷设置面板媒体卡片中的应用;反之也可以让某些应用从媒体卡片的位置“隐身”。 允许显示媒体卡片的应用设置 除了更规范的通知样式和媒体通知卡片调整,Android 12 DP1 也开始着力优化通知的视觉和交互体验。 视觉层面,Android 用户或多或少都看到过“某某应用正在运行”这种通知,比如微信,如果我们没有为其开启“电池优化”,锁屏后其实偶尔可以观察到类似的通知出现并消失。 Android 开发团队似乎也知道这类通知比较烦人,因此在 Android 12 DP1 引入了前台服务通知延迟[12] 机制,顾名思义,一些定时出现且不会常驻的前台服务通知最多可以延迟 10 秒显示,因此如果相关前台任务在短时间内能够完成,便不会有任何通知出现。 交互层面,Android 12 DP1 则进一步加快了通知操作响应速度。以往开发者常常会通过一个广播接收器或者服务作为“中介”,用来处理用户的通知操作行为并调起相应的活动窗口(这个“中介”的学名叫 notification trampolines)。问题这种方式其实非常低效,实际上我们也经常会遇到某些通知操作点击后需要响应半天的情况。 Android 12 则建议开发者进行迁移,让通知操作直接与目标活动窗口建立响应机制来完成交互,以此实现更加快速的通知操作反馈。 图:9to5Google 另外,9to5Google 经过特殊手段也在 Android 12 DP1 中开启了自适应通知提醒[13] 功能,即将通知采用何种提醒方式交由系统自行决定,免去手动设置通知优先级的繁琐流程。在部分经过系统设定通知方式的通知上,我们还可以根据实际情况选择判断是准确来完善相关算法。 现代化媒体格式支持,还有兼容性优化 即便 Android 设备的性能节节提升,面对带有样式的文本或图像、视频、音频等富媒体内容时,不同的应用之间还是很难像桌面操作系统那样高效、快速地完成内容复制与迁移。这也是近年仍在发力 Android 平板生态的华为、三星等厂商一直试图解决的问题。 Google 则希望从系统层面提供更多灵活性。在 Android 12 DP1 中,新的 Unified API[14] 以及 UI 组件中新的接口让我们可以在应用间快速复制、粘贴富文本内容,甚至借助键盘快捷键实现近似桌面端的富文本复制粘贴体验。 图片来源:Android Developer 同时,针对部分应用不支持特定的视频格式内容播放的问题,Android 12 也会借助 Project Mainline 模块升级加入“兼容视频转码”(Compatible media transcoding)[15] 功能:无论是 HEVC(H.265)还是 HDR10/HDR10+ 格式,当应用打开不支持格式的视频文件时,Android 12 可以自动将 HEVC(H.265)格式录制的视频转换为兼容性更强的 AVC(H.264)格式,保证播放时的兼容性。 与之对应的,在 USB 偏好设置中,Android 12 也加入了可以直接勾选开启的视频导出转码功能:当我们从手机中导出采用 HEVC(H.265)编码格式拍摄的视频时,系统会先进行一次编码转换,让导出的视频变为兼容性更好的 AVC(H.264)编码格式。 USB 偏好设置与导出编码转换 图像格式方面,Android 12 除了通过向 ImageDecoder[16] 引入 GIF 与动态 WebP 图像解码能力外,还加入了对 AVIF 格式图像支持[17]。如果你还不了解 AVIF 的话,它是一种基于视频编码格式 AV1 而来的图像编码格式,和当前主流的图像格式(比如 JPEG)相比, AVIF 最大的优势在于拥有更小的文件体积和更高的图像质量,同时没有复杂的专利授权问题。 相同质量的图片,AVIF 体积相比 JPEG 格式小了 10%,图源:jakearchibald.com 目前 Chrome 已经在 85 版本中加入了对 AVIF 格式的支持,而 Firefox 也已经在 84.0 版本中支持了这一功能,虽然 Safari 当前还尚未跟进,考虑到 Apple 本身也是 AV1 格式的制定机构,这一格式的推广和普及应该也只是时间问题。Android 12 这一次算是走在时代前沿了。 完善隐私保护,安全功能更可靠了 比起其它地方的“大刀阔斧”,去年作为一大核心亮点的隐私与安全部分,在 Android 12 DP1 则多的是小修小补,包括: 目标系统版本为 Android 12 的应用在后台运行时将无法再发起前台服务[18] 运行在 Android 12 中的应用都无法获取设备的准确 MAC 地址,系统会向目标系统版本为 Android 12 的应用返回 null 值,向目标系统版本低于 Android 12 的应用返回固定值 02:00:00:00:00:00[19] 限制高风险、安全性相关界面的触摸交互行为(避免点击劫持)[20],同时禁止应用关闭系统对话框[21] 相比之下,位于“系统设置 > 安全和紧急情况”中的紧急求救功能倒是更加值得我们关注。该功能允许开启后,我们可以通过快速连按 5 次以上电源键来拨打紧急求救电话,我们也可以根据实际情况在设置中开启拨号前的警报声提醒 —— 最重要的是,这个功能会根据设备的地理位置自动设定紧急联系电话(比如国内默认为 110),比起之前大部分功能在国内都不可用的 Personal Safety 功能实用性有了大幅提升。 最后,9to5Google 通过调查发现,Android 12 DP1 中还藏着一个隐藏的“隐私开关”[22] 功能,允许我们通过快速设置开关直接屏蔽相机和麦克风调用,达到模拟物理屏蔽硬件的效果。该功能目前并未正式上线。 图:9to5Google 游戏体验升级,大屏 Android 也还有戏 市面上以“游戏”为卖点的 Android 设备越来越多,Google 自家云游戏服务 Stadia 的存在也让移动设备成为了游戏体验中不可或缺的一环。 此前 Google 已经通过持续更新为 Android 平台带来了较为完备的游戏手柄支持,而根据 XDA 主编 Mishaal Rahman 的研究,Google 这次还在 Android 12 DP1 中埋入了针对游戏手柄的振动反馈支持,相关设置位于“语言与输入法”选项当中,暂未正式上线。 图:Mishaal Rahman 游戏方面同样值得注意的是,Android 12 DP1 也允许开发者根据音频生成对应的振动反馈,以此实现更加具有沉浸感的游戏体验。当然根据 Google 的官方文档,开发者同样可以利用这个接口[23] 开发具备不同振动提醒方式的拨号应用,可以说是一个很有潜力的新特性。 在 Android 12 发布之前就已经流传甚广[24] 的 Project Mainline 新模块 —— Android Runtime(ART)[25],也随着 DP1 的发布正式登场。作为影响 Android 运行效率的重要组件,ART 的“模块化”将进一步方便 Google 针对 Android 平台的性能优化更新。类似的做法其实我们去年也已经看到过了,比如小米就已经借助应用商店为自家机型推送过 GPU 驱动程序更新。 另一方面,虽然本次 Android 12 DP 版本并未针对日趋成熟的折叠屏/双屏设备发布新的系统优化,但除了 Pixel 3 之后的机型能够尝鲜之外,和 Pixel 5 同场发布的 Google TV 也有机会刷上大屏的 Android 12 DP[26]:相比于小屏幕,Google TV 的 Android 12 主要加入了面向开发者的 ADT-3 开发者工具包,方便开发者针对大屏 Android 12 设备构建应用;或许,我们仍然能期待一下大屏 Android 设备的生态呢。 截图标注升级,长截图还没准备好 在 Android 11 开发和测试过程中就备受期待的长截图功能依然还没准备好。尽管相关功能已经整合到了 Android 12 DP1 当中,9to5Google[27] 通过特殊手段开启后发现长截图功能目前还有诸多问题,比如仅能截取额外约一屏长度的内容、只对特定应用有效、无法处理好 FAB 按钮等等。 长截图功能入口,图:9to5Google 常规的截图功能本身倒是又迎来了一次不小的更新。 一方面,原本有些 bug 的截图浮窗关闭方式得到了优化。Android 12 DP1 取消了截图浮窗上的关闭按钮,转而采用了向屏幕外划动这一手势来关闭浮窗的操作方式,符合直觉,同时也是目前 OEM 在定制系统中常常采用的做法。 另一方面,截图标注工具新增了海量功能,除了基础的记号笔、橡皮擦和裁剪工具,新加入的荧光笔、文本、emoji 表情也能进一步满足我们进行截图标注时的不同需求。 功能更丰富的截图标注工具 除此之外,Android 12 DP1 还为 Pixel 5 补上了“隐藏屏幕开孔”选项、增强了 Wi-Fi Aware 的相关特性并新增了一个用于减少色彩亮度、帮助视障人士使用的 Reduce Bright Colors 功能,可通过快速设置开关进行开启。 以上便是本次 Android 12 DP1 值得关注的更新内容,如果你有其它发现,欢迎留言分享。 引用链接: [1] Beta 测试项目:https://www.google.com/android/beta [2] 在线刷机工具:https://flash.android.com/preview/dp1 [3] 这个页面:https://developer.android.com/about/versions/12/download [4] 截图:https://sspai.com/post/65012 [5] 深度主题定制:https://9to5google.com/2021/01/27/android-12-working-on-in-depth-theming-system-that-can-even-recolor-apps/ [6] 修补工作:https://developer.android.com/training/gestures/gesturenav?hl=zh-cn [7] 全屏模式:https://developer.android.com/training/system-ui/immersive?hl=zh-cn [8] 视频:https://twitter.com/MishaalRahman/status/1362514616727834624 [9] 标准通知模板:https://developer.android.com/training/notify-user/build-notification [10] 自定义通知模板:https://developer.android.com/training/notify-user/custom-notification [11] 展开式通知模板:https://developer.android.com/training/notify-user/expanded [12] 前台服务通知延迟: [13] 自适应通知提醒:https://9to5google.com/2021/02/18/android-12-dp1-notifications-to-gain-automatic-option-for-whether-or-not-to-alert/ [14] Unified API:https://developer.android.com/about/versions/12/features/unified-content-api [15] “兼容视频转码”(Compatible media transcoding):https://developer.android.com/about/versions/12/features/compatible-media-transcoding [16] ImageDecoder:https://developer.android.com/ndk/reference/group/image-decoder [17] AVIF 格式图像支持: [18] 目标系统版本为 Android 12 的应用在后台运行时将无法再发起前台服务:https://developer.android.com/about/versions/12/foreground-services [19] 运行在 Android 12 中的应用都无法获取设备的准确 MAC 地址: [20] 避免点击劫持: [21] 同时禁止应用关闭系统对话框: [22] 隐私开关:https://9to5google.com/2021/02/18/android-12-privacy-toggles/ [23] 接口:https://developer.android.com/reference/android/media/audiofx/HapticGenerator [24] 流传甚广: [25] 译文 | 关于 Android Q 背后的新变化,我们和谷歌开发团队聊了聊:https://sspai.com/post/56167 [26] Android 12 DP:https://developer.android.com/tv/preview [27] 9to5Google:https://9to5google.com/2021/02/18/android-12-scrolling-screenshot/ (责任编辑:) |