夜雨聆风学习资料网

ARTICLE · 1165984

安卓演化史 · 06|越分越细:权限只给一次,界面跟着你变

安卓演化史 · 06|越分越细:权限只给一次,界面跟着你变

2020–2022:11 的一次性权限与对话通知,12 的 Material You 与隐私面板,13 的照片选择器与通知权限

2020 到 2022 年,安卓沿着两条线变化:权限越分越细,可以只给一次、只给大概位置、只给选中的几张照片;界面越来越个性化,12 的 Material You 让整台手机跟着壁纸换颜色。这一篇讲 11、12、13 这三版背后的思路。

图1|三年:权限变细,界面变活

先回顾:从系统内部到用户眼前

上一篇讲到,2017 到 2019 年,安卓用 Treble 和 Mainline 把系统拆开,又把后台一项一项管起来。这些改动主要发生在系统内部,用户很少直接感觉到。

接下来的三年,变化转到了用户眼前:权限弹窗里多了新选项,状态栏里多了指示标志,设置里多了隐私面板,整个系统的颜色也开始跟着用户的壁纸变。

11:把对话单独拿出来

2020 年 9 月 8 日,安卓 11 发布。Google 给这一版定的主题之一,是以人为中心的交流。

通知栏里,聊天类通知被单独放进最上方的 对话 区域,排在其他通知前面;用户可以把某个对话设为优先。对话还可以变成 气泡:一个浮在屏幕边上的小圆头像,点开就是一个小窗口,聊完收起,不用离开正在用的应用。

11 还把智能家居的开关放进了长按电源键的菜单,把媒体播放控制挪进了快捷设置,可以直接切换声音从手机、耳机还是音箱里放出来;系统也第一次自带了录屏功能。

11 的权限:可以只给这一次

更重要的变化在权限上。第四篇讲过,6.0 把权限改成用时再问,但那时的选择只有允许和拒绝,一旦允许就一直有效。

11 在位置、麦克风、摄像头这三类权限的弹窗里加了一个选项:仅限这一次。选了它,应用这一次可以用;用户离开应用后不久,权限就会被收回,下次要用还得再问。如果应用在前台时启动了前台服务,比如导航,那就可以一直用到服务停止。

后台位置单独收紧。在 10 里,弹窗中还有「始终允许」这个选项;到了 11,弹窗里不再提供它,应用想在后台获取位置,用户必须自己去设置页面里打开。

还有两项不太显眼的改动:同一个权限,用户拒绝两次之后,应用就不能再弹窗请求;一个应用如果几个月没被打开过,系统会自动把它的敏感权限重置为拒绝。

上一篇讲过的分区存储,在 11 正式强制执行:面向 11 开发的应用,不能再选择不启用。确实需要管理全部文件的应用,比如文件管理器,要申请一项单独的「所有文件访问权限」,在 Google Play 上架还要经过审核。同样,面向 11 开发的应用默认看不到手机上装了哪些应用,需要事先声明要和哪些应用打交道,因为已安装应用的列表本身就是一种个人信息。

12:Material You,把颜色交给用户

2021 年 5 月,Google 在开发者大会上公布了新的设计语言 Material You;同年 10 月 4 日,安卓 12 发布。这一版常被认为是 5.0 以来外观变化最大的一次。

第四篇讲过,Material Design 的核心是一套统一的规范,让所有应用看起来像一家人。Material You 在这套规范之上,把颜色的决定权交给了用户。

它最显眼的功能是 动态取色:系统从用户的壁纸里提取几种主要颜色,据此生成一整套深浅搭配的色板,用到通知栏、快捷设置、锁屏、小部件,以及做了适配的应用上。换一张壁纸,整台手机的配色就跟着换。

12 同时重做了小部件,让它可以直接操作,并按屏幕大小调整布局;所有应用有了统一的启动画面;列表滑到尽头时,会出现一种拉伸回弹的效果。Google 还表示,核心系统服务占用的处理器时间减少了 22%。

图2|Material You:从壁纸里取色

12 的隐私:看得见,关得掉

12 的隐私改动,重点是让用户看得见应用在做什么。

应用正在使用摄像头或麦克风时,状态栏里会出现一个指示标志;快捷设置里新增了两个开关,可以一键切断所有应用对摄像头和麦克风的访问,紧急呼叫除外。设置里新增了 隐私面板,按时间线列出过去 24 小时里,哪些应用在什么时候用过位置、摄像头和麦克风。

位置权限再细分一层:即使应用申请的是精确位置,用户也可以只给 大概位置,比如天气应用知道你在哪个城市就够了。应用读取剪贴板时,屏幕底部会弹出提示。扫描附近的蓝牙设备,过去要申请位置权限,12 起改为单独的附近设备权限。

12 还加入了 Private Compute Core:实时字幕、识别正在播放的歌曲、智能回复这类在手机上运行的智能功能,被放进一个隔离的区域,不能直接联网;需要和云端通信时,要经过一组开源的接口,先去掉能识别身份的信息。

后台继续收紧:面向 12 开发的应用,在后台时基本不能再启动前台服务;要设精确时间的闹钟,得有单独的「闹钟和提醒」权限。11 的权限自动重置也升级成了 应用休眠:几个月没用的应用,不仅权限被重置,还不能在后台运行任务、收不到推送,缓存也会被清掉。

图3|隐私:看得见,关得掉

12L:给大屏补一课

2022 年 3 月,Google 发布了 12L,一个专门面向平板、折叠屏和 Chromebook 的版本:大屏上的通知栏、设置等界面改成两栏布局,屏幕底部加了任务栏,方便在应用之间切换和分屏。

13:照片选择器和通知权限

2022 年 8 月 15 日,安卓 13 发布。

它最有代表性的改动是系统 照片选择器。过去,应用想让用户选一张照片当头像,往往要申请读取存储的权限,拿到的却是整个相册。照片选择器换了一种做法:系统弹出一个统一的选择界面,用户挑哪几张,应用就只拿到哪几张,应用本身不需要任何权限。

照片选择器还借助模块化更新,送到了 11 和 12 的手机上;更老的手机,只要有 Google Play 服务,也能装上一个移植版本。一项新功能,不再只属于新版本。

图4|照片选择器:只给选中的几张

需要读取媒体文件的应用,原来的读取存储权限也被拆成了图片、视频、音频三种,各自单独申请。

另一个改动是 通知权限:在 13 上新装的应用,通知默认是关的,应用要先弹窗征得用户同意才能发。为了不打乱已有的使用习惯,手机升级到 13 时,已经在发通知、且没被用户关掉通知的应用,会自动获得这项权限。

此外,用户可以给每个应用单独设置语言,比如系统用中文、某个学外语的应用用英文;复制内容时,屏幕角落会显示一个预览,确认复制了什么;Material You 的取色延伸到了应用图标,打开主题图标后,图标也跟着壁纸换色。13 还支持了新一代的低功耗蓝牙音频。

模块化更新继续扩大

上一篇讲过,10 开始把一部分系统组件拆成可以单独更新的模块。这三年,这份名单越来越长:11 新增了 12 个模块,总数比 10 时翻了一倍多,其中包括管理照片、视频等媒体文件的媒体提供器;12 把第四篇讲过的 ART 运行时也做成了模块,应用运行的核心部分也能通过 Google Play 系统更新单独升级;13 又加入了蓝牙等模块。

图5|11 到 13 版本对照

开发者这边:Jetpack Compose

2021 年 7 月 28 日,Jetpack Compose 1.0 正式发布。这是一套新的界面开发工具,用上一篇讲过的 Kotlin 编写,做法是声明式的:开发者只描述界面在某种状态下应该长什么样,数据变了,由框架负责把界面更新过来,不用再一步步手动修改每个控件。

回头看:从给不给,到给多少

把 2020 到 2022 年连起来看,安卓的权限从「给不给」变成了「给多少」。

给一次:一次性权限,用完就收回。

给大概:大概位置,只让应用知道你在哪一片。

给几张:照片选择器,只交出用户选中的那几张。

看得见:指示标志和隐私面板,让用户知道谁在什么时候用了什么。

会过期:几个月不用的应用,权限自动收回。

另一条线在界面上:从第四篇的 Material Design 统一规范,到 Material You 跟着每个人的壁纸变,系统的样子第一次有一部分由用户决定。

图6|权限越分越细

写在最后

前五篇讲的多是安卓怎么补短板、怎么理顺结构;这三年,安卓更多是在回答一个问题:用户对自己的手机和数据,能有多少控制。权限选项变多了,对开发者的要求也随之变多:应用要说明为什么需要某项权限,被拒绝时还要能正常运行。

下一篇是这个系列的最后一篇,讲 2023 年到现在的几个版本,并回头看安卓近二十年的演化。

· · ·

免责声明

本文为公开资料的科普梳理,事实与时间主要来自 Android 开发者官方文档、官方博客与公开报道。功能描述为原理说明,具体行为与应用面向的系统版本有关,各手机厂商的实现和更新节奏也可能不同;具体以官方最新披露为准。

本文涉及的公司名称、产品名称仅用于说明历史事实,不代表对任何公司或产品的评价,也不构成任何购买或投资建议。

相关学习资料