在今年的 I/O 2015 大会上,Google 毫不意外地宣布了 Android M 的消息。很多人以为这个 Android M 会是 5.2 之类的小版本更新,毕竟从特性上来看,M 的改进并不大,似乎只是 Lollipop 的小改版而已。
事实证明,Google 又刷了一次版本号……

不过,即使更新幅度较小,Android 6.0 Marshmallow 也是很有趣的一个版本。它其中不仅有已经宣布的全新特性,似乎还有一些「彩蛋」性质的特性供我们挖掘,接下来,就让我们慢慢解读 Android 6.0 的「表」与「里」吧。
权限管理
早在 Android 4.3 版本中,就有爱好者发现 Google 隐藏了一个名为「App ops」的权限管理工具,可以通过一些方法激活。

图源:Android Police
这个消息一出,Android 爱好者们都激动无比啊。要知道,权限管理可是 Android 空缺许久的一项特性;多年来如果 Android 用户不想让某些 App 读取地理信息数据或者访问通讯录,只能靠第三方软件或者第三方 ROM 的内置功能来实现,而且在使用的时候可能需要 Root 权限等,不是很方便。
就当大家都在奇怪为何 Google 把这个工具藏起来的时候,Google 发话了:这个 App ops啊,只是个实验性的功能,当初是意外地打包进 4.3 的,你们不要当真哦。之后,就在 4.4.2 中将这个权限管理工具移除了。
显然故事并未结束。经历了两个大版本更新之后,Google 终于携着新的权限模型,将权限管理功能再次带到了 Android 6.0 之上。

相比起以前将应用权限一股脑都列出来,让用户决定装还是不装,Android 6.0 的权限管理会在应用需要用到权限的时候弹窗提醒,让用户进行授权,用户授权后,应用才能得到相应的权限。

另外,在你向一个应用程序授予权限之后,你也可以选择在应用详情里取消某些权限的授权。

当然,由于新的权限模型还是第一次在 Android 6.0 上出现,加上新系统的普及程度不高,开发者可能不会很快地跟进以让应用支持新的权限管理功能。对于这些尚未采用新模型的 Android 应用,系统仍然支持禁用一些权限,但是不会出现上图中主动弹出的权限授予对话框,同时在切换时会弹出提示,警告用户在禁用权限后应用可能无法正常运行。

同时由于新模型仍然存在不完善的地方,某些应用即使对新模型进行了适配,也会存在拒绝许可某些权限后无法使用的情况,例如某大厂支付应用。希望 Google 能够进一步完善这个新特性,让其真正起到该有的作用。
Doze & App Standby
Google 看起来是下定决心死磕续航了,继在 5.0 中加入了节电模式之后,Google 又为 6.0 引入了两个新技术:Doze 和 App Standby。
Doze 的原理是通过对各种传感器的监控,来判断机器是否处于使用状态。当 Doze 认为机器长时间处于待机状态的时候,它会自动暂停绝大部分后台应用,同时关闭网络连接,仅在需要时偶尔连接,如此来达到在待机时节省电量的效果。
需要注意的是,能足以激活 Doze 的待机时长真的很长,基本上可能你一上午完完全全不碰手机,Doze 才会被激活。不过这样倒是也为那些晚上不爱插充电器,也不愿意关机的人们提供了一种节电的新方式。
这么高大上的功能,你在设置中是找不到设置开关的——事实上目前似乎没有办法关闭 Doze。但是,你可以在「设置—电池」中找到「电池优化」菜单,将某些应用设置为不优化,从而让这个应用不会被 Doze 暂停。

另一个功能 App Standby,指的是系统会自动停用那些许久不用的应用,从而达到节省电量和减少后台占用的作用。
这个功能同样也是全自动的,但是你可以在开发者选项中,找到「未启用的应用」项,在里面手动停用/启用应用。不知道停用了阿里全家桶之后他们还会不会被唤醒呢……

内存管理
Android 6.0 将原先存在于「应用」中的内存管理方面的功能单独提出了,现在可以更加直观地看到平均内存的使用量,还能查看过去 3 小时到一天的应用的内存使用量,从而判断哪些应用是「吃内存大户」。

存储管理
在 Android 6.0 上,原先的用彩色柱状图表现存储空间占用率的方式被数字和文本替代了,个人的感觉是比以前更精炼了,但不如曾经用不同颜色代表各种内容占用的存储空间大小直观。

除此之外,Android 终于提供了自带的文件管理器。在「存储设备和 USB 」界面滚到最下方,点击「浏览」即可打开这个自带的文件管理器,界面较为简单,可以进行文件/文件夹的复制、移动、粘贴、删除等基本操作。

然而这个文件管理器简单到有点简陋的地步了,连文件重命名这样的功能都不提供...而且经过测试,居然无法打开 apk 安装包,让人实在是有些看不懂。总之,真正需要文件管理器的话,还是选择 ES 、RE 和 Solid 之类的第三方文件管理器吧。
另外,对于 Nexus 7 之类的 Nexus 设备,其 OTG 功能之前一直只支持鼠标等外设而不支持扩展存储设备。而在升级到 Android 6.0 之后,系统终于提供了 OTG 扩展存储设备的原生支持,可以直接进行文件读取等操作。

USB 连接选项
现在将设备通过 USB 连接到电脑,可以选择「仅充电」方式,也可以在其他数据传输方式中进行选择。对了,Android 6.0 还提供了对 MIDI 设备的原生支持,音乐爱好者的大好事。

Now On Tap
过去,Google Now 能听懂你说的话;
现在,Google Now 能看懂你的内容。
通过长按 Home 按钮,Now On Tap 会被激活,并且对当前应用的内容提供相应的信息——例如当播放音乐时,它会识别当前播放的音乐的表演者,并且给出票务应用信息;当文章中提到了某个人物,它会识别出那个人,并且给出那个人物的简介和最近新闻,等等。可惜的是,这个功能我们只能处于看看就好的阶段,毕竟,你懂的,嗯。

Chrome Custom Tabs
当应用程序需要访问外部网页的时候,应用一般会直接跳转到默认浏览器,或者使用内置浏览器。而现在,Chrome 提供给开发者一个全新的选择:Chrome Custom Tabs。
开发者可以自定义工具栏的颜色、界面过场动画、菜单项等等,并且仍然可以享受到一些 Chrome 的特性,例如自动填充,密码存储等。除此之外,由于更先进的内核和预加载技术,Chrome Custom Tabs 能显著地加快载入时间。

这实际上不是专属于 6.0 的新特性,任何兼容 Chrome 45 以上版本的 Android 都可以使用,但 6.0 算是最早兼容这个特性的系统...目前也已经有开发者在对这个特性进行测试,相信它会很快出现在我们身边……或许。
原生指纹识别支持
不论你信还是不信,很多我们已经司空见惯的功能,一开始都是通过非官方方式实现的...例如我国人民喜闻乐见的双卡双待,Android 愣是在 Lollipop 之后才提供了官方原生支持。这次指纹识别也是一样,国内外众多厂商已经造了无数个轮子,Google 才在 6.0 中加入了原生支持,并且对开发者提供了 API……

不过,即使是姗姗来迟,但也总比不来好,而且这回 Google 的步伐并不算慢。
用户界面改进
Google Now Launcher:滚动式抽屉回归
众所周知,Android 的原生 Launcher 的应用抽屉,最早就是滚动式的。直到 Android 4.0 开始,Google 将其改成了类 iOS 的左右翻页,没想到在最新版本的 Google Now Launche 里,他们玩了一把「返璞归真」,将滚动式抽屉带回了我们的视野。

当然,Now Launcher 的改进不光光是滚动式抽屉而已。抽屉区域最上方是「应用推荐」区域,会根据你的使用情况智能推荐应用。拖动最右边的滚动条,可以以字母排序查找应用,且该字母排序的第一个应用会有一个放大收缩的动画给予视觉提示,十分简洁方便。

除此之外,通过最顶部的搜索栏,现在可以直接进行应用搜索了,也算是个姗姗来迟的功能,毕竟有些 Launcher 早就有了。(P.S. 在桌面长按抽屉按钮,会直接调出键盘进行搜索)

文字选择界面
文字选择界面从原来的顶部 Toolbar 变成了类 iOS 的浮动显示,个人认为更适用于单手操作。就是那个 More 的逻辑有些奇怪,在这里点击会调出「全选」,难道这个选项不该和「分享」调个位置吗?

音量控制界面
回到了过去的样式,原来的「免打扰」模式切换被放到了下拉快速设置中。

锁屏界面
显示日期区域的字号和间距相比 Lollipop 有一定更改。同时,在 Google 为官方支持的 Nexus 设备推送的 6.0 中,左侧的「电话」快捷方式被替换为搜索。

以上就是 Android 6.0 公开的绝大部分新特性和更改。还有一些特性,例如方便应用间跳转的 App links,移动 WLAN 热点支持 5GHz 频段,可以将部分应用数据放置至扩展存储卡上以节省空间的 Flex Storage 等等,在这里就不一一列举了。
接下来,我们要谈谈 Android 6.0 的「里」功能和特性。
系统界面调谐器
这个东西颇像是一个彩蛋,如果事先不知道,估计很少有人能发现这个玩意儿,除非那个人的探索能力真的很强。
要激活它,你需要下拉到快速设置区域,然后长按设置齿轮图标(如果仔细看的话,那个齿轮还会有转动的动画),一段时间后松开,系统会自动跳转至设置界面,并且弹出一个 Toast 提示你已经激活。接下来,滚动到最底部,你就能看到这个调谐器了。

尽管 Google 认为「是否有趣完全取决于个人感觉」,但是实际上它的确提供了一些非常有趣的功能。
快速设置:可以在这个界面中调整快速设置区域的图块,长按可以拖动调整位置,拖动到底部的「删除」区域可以删除,通过「添加」按钮可以添加新的图块,但是目前只有一个意义不明的「推送图块」。所有更改均会立即生效。

状态栏:可以不显示某些系统图标,例如免打扰等。

显示电池百分比:可以在电池图标上显示电池电量百分比。

演示模式:非常有意思的功能,启用之后会将状态栏的 Wi-Fi / 信号 / 电池电量显示为全满,时间锁定为 6:00,隐藏通知图标。对于某些截图强迫症来说,这个模式简直是救他们于水火之中啊……

分屏显示
相比系统界面调谐器,分屏模式隐藏得更深一些——它是在 M DP 版本开放之后被 xda-developers 会员挖掘出来的,需要涉及到更改 build.prop 这样的系统底层文件的操作才能开启,具体的开启教程在此。本人不对修改系统文件导致的后果负任何责任,修改前请三思。
当修改成功后,你还需要开启开发者选项,并在其中找到「多窗口模式」的开关,才能将其开启。

开启之后,在最近应用界面,你会发现在每个程序的关闭按键旁边增加了一个新按键,点击后即可调出分屏选项。

Android 6.0 的这个分屏功能最多支持四个应用的同屏幕显示,如下图:

并且,这四个应用均可以进行直接操作。

由于该特性为实验性质的特性且并未正式公开,所以对于绝大多数应用来说或多或少都有一些兼容性的问题。例如使用了半透明状态栏的应用会让状态栏直接显示壁纸,某些应用仍然有为状态栏留下的区域,应用元素显示不完全等。希望 Google 能在后续版本中继续完善这一功能。
一些谜之特性
消失的 Dark Theme

暗色主题 (Dark Theme)是曾经出现在 Android M DP 第一版中的一个特性,但是在随后的第二版中 Google 便将其移除了。在正式版推送中这个特性也并未回归,对此 Google 表示或许会在随后的版本中加入。希望 Google 能说到做到。
或许存在的一键关闭全部最近应用
微博用户@翟宅宅Jack 称「听说谷歌在6.0源码里隐藏了一个清除后台按钮」,并且给出了一段视频,视频中在最近应用界面滚动到最底部时出现了一个一键关闭全部的按钮。不过这个 ROM 是来自第三方的,或许是第三方开发者自行加入而不是 Google 隐藏的,所以听听就好。

结语
以上就是一些 Android 6.0 Marshmallow 带来的新功能和新特性,希望各位 Android 用户也能早日吃到甜甜的棉花糖。
