APP下载

安卓系统的更新换代

2019-09-10王媛满

计算机与网络 2019年10期
关键词:卡顿U盘后台

王媛满

新一代安卓系统很快就要正式和大家见面了,目前安卓10的前身安卓Q已经向Pixel设备推送了测试版,而安卓Q之中的“Q”到底会是什么“甜品”,也成为了大家热议的话题。算起来,安卓数字版本走到了“10”,而安卓用甜点作为系统代号的传统,已经传承了14代。从“Cupcake纸杯蛋糕”到未正式定名的“Q”,14种甜品见证了安卓的成长,也承载了无数老玩家的回忆。

从诞生伊始的iOS的跟随者,到现今移动互联网的主力军,安卓这十多年的变化不可谓不惊人。在安卓10发布的前夕,让我们来回顾一下安卓的进化之路,谈谈那些只有安卓老玩家才懂的回忆吧。

安卓曾经的界面你记得吗

早期安卓系统界面缺乏设计、粗制滥造的情况有目共睹,这和安卓诞生的历史有着密切关系。追根溯源,安卓的历史甚至要比iOS更悠久。在2003年10月,有“安卓之父”之称的安迪·鲁宾(AndyRubin)创建了安卓科技公司,致力于为用户研发更聪明的移动设备。2005年,Google收购了安卓公司,而鲁迪也成为了Linux内核移动操作系统团队的领导人———这个Linux内核的移动操作系统就是安卓。从这段历史来看,安卓的资历要比iOS更老。

然而,安卓在被Google推向消费市场时,却是不折不扣的iOS跟随者。2007年iPhone和iOS横空出世,全触屏的设计理念震动了整个业界。而在iOS公布之前,安卓是以键盘机为硬件基准而设计的,iOS面世后,安卓受影响作了大刀阔斧的修改,硬生生地将系统改成了触屏式。在早期的安卓系统当中,甚至部分功能仍需要键盘才能实现,第一部推向市场的安卓机HTG G1带有侧滑式全键盘,就是最好的明证。

此情此景下,安卓界面缺乏设计也就是理所当然的事情。如果你是一名安卓老玩家,相信还会记得早年安卓的每个角落都无比缺乏细节的窘境。例如界面过渡缺乏动画、菜单滑动缺乏阻尼,就连双指捏合缩放也会漂移,更别说各种形态不一的图标、参差不齐的框架布局了。整个安卓1.X/2.X时代,安卓界面设计并不成体系,为了弥补这点,市面上出现了不少重做整个系统界面的第三方ROM,就连大家熟悉的MIUI也诞生于这个年代。

到了安卓3.X/4.X,Google终于攒足了将系统界面整理成型的资本。Google挖角了WebOS的设计师Matias Duarte,为安卓重新设计了一套UI———Holo界面就此诞生。Holo的設计思路传承自WebOS,大量交互都使用了WebOS的理念。WebOS卡片式多任务、拉扯通知即可呼出通知中心等设计,在Holo设计乃至此后的安卓界面中,都有着很高的上镜率。

Holo界面虽然并不华丽,但却很有品位,甚至显得比iOS当时的拟物风设计更加现代。Holo设计强调大内容块(例如卡片)和简约、有秩序的布局,现在安卓上的很多经典元素依然传承于Holo,例如汉堡菜单、界面滑动到底的动画等。最重要的是,Holo设计带来了标准化,这使很多安卓APP不再是iOS应用的简单移植,而是按照安卓的设计规范来开发,安卓终于有了自己的视觉风格。

不过,Holo设计也存在很多缺点,例如内容密度偏小,操作并不那么的顺手等,Google在安卓5.0以后推出了视觉设计和交互逻辑都更完善的Material Design,Holo遂被取而代之。

在安卓5.0中,Material Design总体上继承了Holo的交互思路,但视觉风格却截然不同。Material Design使用了剪纸的拟态来营造UI层级,并加入了大量动态特效,令系统的交互逻辑一下子清晰了起来,而且交互过程变得更加鲜活。Material Design对Google意义重大,这意味着Google终于有了一套成熟的界面设计语言(Holo仍显生涩),同时这套设计语言不仅用于安卓,在后来还延展到了Chrome以及各种Google服务的页面当中。

Material Design在之后并非一成不变,在安卓5.0后,Material Design的视觉效果变得更加圆润,而布局也逐渐靠近iOS,出现了底部功能按钮等元素。和当初相比,现在安卓的界面设计已经发生翻天覆地的变化,不过广大用户仍和之前一样,很难享用到Google的原生设计,直接接触的多是第三方厂商定制的界面。

安卓曾经的操作你还熟悉吗

安卓机要怎么用?十年前的安卓用户和现今的安卓用户,给出的答案可能截然不同。原因很简单,安卓的操作方式在这十年间发生了巨大改变,从最早的全键盘、机械按键,到四大、三大金刚电容键,屏幕虚拟键,再到全面屏手势,安卓的用法一直在改变。

前面提到,安卓在最早的时候是为适配全键盘手机而设计的,受iPhone影响才改为触屏系统。在HTC G1上,可以看到触摸屏和实体键盘并存的设计。在最早的安卓当中,系统甚至没有虚拟键盘,输入文字需要靠实体全键盘实现。

到了安卓1.5时代,全键盘渐渐和大家说再见,不过此后机械按键仍必不可少。例如搭载安卓1.5的HTC Hero和安卓2.1的Nexus One,都保留了轨迹球,但从中也可以看到安卓的操作按钮在不断简化,接听电话的实体键消失,取而代之的是“搜索、返回、菜单与Home”这“四大金刚”。在搭载安卓2.2的HTC MileStone当中,则同时出现了“四大金刚”的电容键和机械按键,仍保留了全键盘,但这似乎也成为了保留机械实体键的最后一款爆款机型,从此安卓进入了电容键的时代。

随后,安卓的按键数量被进一步缩减,从搭载安卓2.3的Nexus S开始,“四大金刚”中的搜索按钮消失,只剩下“返回、Home和菜单”三大金刚。不过在形式上,各家安卓厂商的方案不同,例如同样搭载了安卓2.3的GalaxyS,Home键就被设计为了正中央的机械按钮。在此后的安卓机当中,这样的设计仍非常常见,和电容键乃至之后的屏幕内虚拟键相比,这样的设计能和指纹解锁更好地结合在一起,因此久经不衰。

在安卓3.X中,屏幕内虚拟按钮的设计首次出现。不过安卓3.X是为平板而生,未搭载到手机当中,而安卓平板一直不温不火,因此人们对它印象不深。到了安卓4.X,屏幕内虚拟按键的设计全面来袭,GalaxyNexus一马当先,取消了屏幕外的电容键,将操作按钮都集成到了显示屏底部的小黑条当中。不仅如此,按键的功能也发生了变化,菜单键被多任务键取而代之,菜单键仅会在特定的APP当中出现。至此,安卓的操作方式再次发生了剧变。

安卓屏幕内虚拟按键的设计无疑是富具争议的。它的优点主要有:一来灵活多变,厂商可以根据需求调整按钮的位置乃至数量;二来不易误触,视频、游戏全屏的时候按钮会隐藏,而屏幕外的电容键做不到这点;三来提高屏占比,手机下巴不需要保留位置给按钮,屏幕熄灭后的整体感也更强。但是屏幕内虚拟按键也有不可忽视的缺点,例如挤压了显示内容,又例如固定显示更容易造成AMOLED屏幕烧屏等。

尽管极具争议,但在提高屏占比的大潮下,屏幕内虚拟按钮的方案仍越来越多地出现在各家厂商的产品当中。而随着屏占比进一步提升,全面屏概念的推出,令虚拟按钮也越来越没有容身之处了。

在安卓P当中,Google为系统引入了类似iOS的手势小白条,通过按压、拖动小白条即可实现返回桌面、呼出多任务等功能,成为了取代屏幕内虚拟按键的可选方案;而在安卓Q当中,手势的设计更加激进,“三大金刚”全被取消,手势正式成为安卓最主要的操作方式。

在这十年间,安卓系统的功能按钮从繁杂到简约,从全键盘到手势,操作方式发生了翻天覆地的变化。全面屏时代已经来临,手势成为了潮流,在VR、AR等技术普及的未来,安卓的操作方式还会有什么变化?我们共同期待吧。

安卓曾经的玩法你折腾过吗

再来说说一些安卓曾经的玩法吧。安卓可谓是可玩性最高的移动操作系统之一,为了实现更好的体验,不少朋友都折腾过安卓系统,不过随着安卓本身的发展,不少玩法已经成为了时代的眼泪,只残留在老玩家们的记忆当中了。

APP移動到SD卡

在早期的安卓中,普遍可以使用SD卡进行扩容。尽管APP默认并不是安装到SD卡当中,但可以通过系统本身功能,或者APP2SD之类的小工具,把APP移动到SD卡。对于一些体积较大的APP例如游戏,把APP移动到SD卡意义还是比较重大的,要知道早期安卓机自带容量只有4G,SD卡可谓是承担起了“救苦救难”的责任。

将APP移动到SD卡后,SD卡仍可以发挥原有的功用。你可以将SD卡取下来,插到别人的手机或者电脑上传输数据,U盘和扩容空间两相宜。

不过,在安卓6.0以后,这功能的玩法走到了头。在安卓6.0中,存储空间仍可以通过SD卡扩容,但要么只能作为便携式存储,只能在其中存放音乐、照片等数据;要么只能作为内部存储,格式化后和内部存储空间同被划分为一个分区,彼此交融,不能再单独取出读取数据。

不仅如此,越来越多的安卓机,都取消了SD卡插槽。

U盘模式

很多朋友看到这里就会有疑问了,安卓不是一直都可以当U盘用吗,为什么说U盘模式是时代的眼泪?其实现在安卓能当U盘用,和之前安卓的U盘模式压根就不是一回事。有细心观察的话,应该会知道现在要把安卓当U盘得选择“MTP模式”,而不是以前的“USB大容量存储模式”———这才是真正的U盘模式。

二者有什么区别呢?简单来说,以前安卓的U盘模式会把安卓机的存储空间直接挂载到PC系统上,令安卓的存储空间化身分PC系统中的一个磁盘分区,操作起来和U盘是没有什么区别的。而现在的MTP模式,并不会把安卓的存储空间挂载为PC磁盘分区,而只是通过MTP协议来传输数据。这2种设计的用户体验,有着巨大差异。

首先来说说U盘模式的优点。由于直接把存储空间挂载为PC盘符,所以可以在PC上随意浏览修改安卓机内的文件,传输速度也很快,下载软件也能直接把东西下载到安卓机当中,不需要下载到本地再复制。但U盘模式带来的问题也挺影响用户体验的,当把安卓当U盘的时候,安卓系统就读取不到机内文件了,而且一旦安卓使用的是PC认不出的磁盘格式,例如ext4等,PC就无法读取安卓的存储空间。

与之相比,MTP模式兼容性更好,只要PC支持MTP协议,无论安卓使用怎样的磁盘格式,都可以读取数据。虽然MTP速度慢,但PC和安卓都能同时操作机内文件,而且也更加安全,PC无法对一些安卓的关键数据进行修改。例如PC感染了病毒,病毒就难以通过MTP顺藤摸瓜去破坏安卓的文件。当然,MTP的不便之处就是不能直接修改文件,需要先把文件拷贝出来再进行操作。

对于用户来说,MTP显然更不容易出问题。因此,性能更强的U盘模式被淘汰也在情理之中了。

手动Trim

安卓机用的是闪存,自然也会遇到闪存变“脏”的情况。简单来说,闪存需要擦除数据后才能重新写入,系统中删除数据时,数据并不会在闪存上被物理删除。如何让系统智能地识别“脏”闪存,在数据写入之前就把闪存清理干净?这里所用到的重要技术就是Trim。

在最早,安卓是不支持Trim的,因此安卓机用久了以后,闪存I/O效率会大为下降,卡顿也就自然而生。不过Linux本身是支持Trim命令的,因此通过Lagfix等APP,可以手动发起Trim,或者设置定时Trim,让安卓恢复流畅。

近年的操作系统包括Windows,MacOS等,都已经全面支持Trim,作好了完善支持SSD的准备,如果安卓还需要手动Trim,那也未免太说不过去。在安卓4.3后,这一玩法成为了历史。安卓4.3终于加入了系统Trim功能,得益于此,安卓的流畅度也提高了一个层次。

安卓曾经的卡顿让你刻骨铭心吗

说起安卓的蔑称,“卡顿小王子”这外号是逃不过去的。如果是老安卓玩家,一定会对早几年安卓的卡顿印象深刻。而当时人们选择iOS甚至WP的一大原因,往往是受够了安卓“三帧一卡、五帧一顿”的糟糕体验。

而现在,不说安卓已经绝对流畅,起码越来越少人将安卓卡顿视为难以接受的使用障碍;加之iOS在流畅度也翻了车,抱怨安卓卡顿就更缺乏理由了。安卓在提升流畅度方面的努力,可谓是有目共睹。

影響安卓流畅度的第一大原因,就是后台调度机制,安卓的后台机制和Linux一脉相承,返回系统桌面并不会关闭APP的相应进程,而是让APP在后台持续运行;当系统需要更多资源的时候,相应状态的进程才会被请出去。然而不少APP都使用了种种手段驻留在后台,系统本身压根没法将流氓APP的进程们清理出去。系统资源越来越吃紧,卡顿也就理所当然了。

为了解决APP乱驻后台的问题,安卓可谓是费尽心思。在安卓5.X当中,Google推行了伏特计划(Project Volta),系统新增了一个新的API JobScheduler,引入了对齐唤醒机制。APP的后台想要有什么举动,不能再密集唤醒,而是集中于某个时段一齐唤醒,减缓了卡顿的概率。而在安卓6.X当中,进一步引入了Doze机制,当系统检测到手机长期静止的时候,系统会让后台进程进入休眠、极少唤醒,不再让后台进程白白耗费手机电量。

在安卓7.X当中,安卓系统的进程调度就更加以流畅为本了,系统会限制后台能调用的资源,让前台任务保持流畅。而在安卓8.X当中,其开发规范(API level 26以上)要求APP一旦进入后台,需要在短时间内停止所有的后台服务,也不可以随便启动新的后台服务。到了安卓9.0,系统则直接禁止APP调用第三方的API,并且不兼容API level 17———在以往APP可以用第三方或者老旧的API绕过安卓系统的限制,在最新版的安卓中,问题得到了较有效的解决。

安卓卡顿的另一个因素,是UI渲染机制。在安卓2.X当中,安卓并没有广泛使用GPU加速渲染UI,直到安卓3.X蜂巢当中,才加入了系统级别的GPU硬件加速机制。在此后的安卓系统当中,可以在开发者模式中强制开启硬件加速,让系统强行使用GPU渲染APP界面。开启后,很多原先卡顿的APP都如丝滑般流畅。

而安卓4.1推行了黄油计划(Project Butter),通过同步机制(Vsync)和缓冲机制,将UI帧数提升到60帧的同时,把每一帧的渲染时间控制住0.016 7 ms左右。如此一来,安卓的UI就变得前所未有的顺畅,为流畅度追赶iOS打下了良好的基础。

除此以外,安卓还改进了代码运行效率。安卓大量模块和APP都使用JAVA编写,在安卓4.4之前,代码需要运行时通过Dalvik即时编译,会耗费大量资源;之后安卓引入了ART机制,APP安装时会预先编译,运行时效率更高。不仅如此,ART还带来了改善的GC垃圾回收器,对流畅度的改善的立竿见影的。在安卓5.0中,Dalvik虚拟机被彻底抛弃,ART全面普及,安卓APP的流畅度上了一个台阶。而在安卓7.0以后,更是引入了混合编译模式,保证JAVA运行效率的同时,安装APP速度还大幅提升。

另外,为了提高图形渲染的效率,安卓7.0中还引入了Vulkan图形接口,能够更好地调用多线程、更直接地和硬件对话,不少游戏因此大大提高了帧数。例如大家熟悉的《王者荣耀》的Vulkan版,就比OpenGLES版更加流畅。

种种举措之下,加之硬件的进步(当前中低端的Soc骁龙670、710,带宽也达到了14.9 GB/s,之前常见的MT6753带宽仅为5.3 GB/s),安卓系统的流畅度已经不是什么大问题。现在的安卓,已经很少出现初期那种卡住假死、幻灯片式掉帧乃至卡到重启的情况了。“卡顿小王子”这一称号,越来越成为安卓老玩家独有的记忆。

气势如虹走过了这十多年,安卓早已今非昔比。安卓Q已经向公众推送了测试版,正式版安卓10也将会在2019年和大家见面,第15个安卓甜点代号即将出炉。

猜你喜欢

卡顿U盘后台
自动辨认插口方向的U盘
最忠实的守墓犬
最忠实的守墓犬
Wu Fenghua:Yueju Opera Artist
最忠实的守墓犬
让U盘起死回生
后台暗恋
U盘“闹肚子”
后台的风景