欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

安卓这些年变化多惊人? 那些老玩家才懂的回忆

程序员文章站 2022-04-28 21:25:45
新一代安卓系统很快就要正式和大家见面了,目前安卓10的前身安卓q已经向pixel设备推送了测试版,而安卓q之中的“q”到底会是什么甜品,也成为了...

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

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

安卓曾经的界面你记得吗

早期安卓系统界面缺乏设计、粗制滥造的情况有目共睹,这和安卓诞生的历史有着密切关系。追根溯源,安卓的历史甚至要比ios更悠久。

在2003年10月,有“安卓之父”之称的安迪·鲁宾(andy rubin)创建了安卓科技公司,致力于为用户研发更聪明的移动设备。2005年,google收购了安卓公司,而鲁迪也成为了linux内核移动操作系统团队的*——这个linux内核的移动操作系统就是安卓。从这段历史来看,安卓的资历要比ios更老。

然而,安卓在被google推向消费市场时,却是不折不扣的ios跟随者。2007年iphone和ios横空出世,全触屏的设计理念震动了整个业界。

而在ios公布之前,安卓是以键盘机为硬件基准而设计的,ios面世后,安卓受影响作了大刀阔斧的修改,硬生生将系统改成了触屏式。在早期的安卓系统当中,甚至部分功能仍需要键盘才能实现,第一部推向市场的安卓机htg g1仍带有侧滑式全键盘,就是最好的明证。

此情此景下,安卓界面缺乏设计也就是理所当然的事情。如果你是一名安卓老玩家,相信还会记得早年安卓的每个角落都无比缺乏细节的窘境。例如界面过渡缺乏动画,菜单滑动缺乏阻尼,就连双指捏合缩放也会漂移,更别说各种形态不一的图标、参差不齐的框架布局了。

整个安卓1.x/2.x时代,安卓界面设计并不成体系,为了弥补这点市面上出现了不少重做整个系统界面的第三方rom,大家熟悉的miui也诞生于这个年代。


安卓2.x的这些界面元素,恐怕很多新安卓用户都没见过了

到了安卓3.x/4.x,google终于攒足了将系统界面整理成型的资本。google挖角了webos的设计师matias duarte,为安卓重新设计了一套ui,holo界面就此诞生。

holo的设计思路传承自webos,大量交互都使用了webos的理念。webos卡片式多任务、拉扯通知即可呼出通知中心等设计,在holo设计乃至此后的安卓界面中,都育着很高的上镜率。

安卓这些年变化多惊人? 那些老玩家才懂的回忆
palm os的ui


安卓holo界面,对比plam os可以发现很多地方都有传承

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


黑底蓝光的holo ui很酷很有科技感,但仍显得比较生涩和冷冰

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


安卓5.0后开始推行的material design,用类似剪纸的阴影营造层级,视觉效果变得更久优雅

在安卓5.0中,material design总体上继承了holo的交互思路,但视觉风格却截然不同。material design使用了剪纸的拟态来营造ui层级,并加入了大量动态特效,令系统的交互逻辑一下子清晰了起来,而且交互过程变得更加鲜活。

material design对google意义重大,这意味着google终于有了一套成熟的界面设计语言(holo仍显生涩),同时这套设计语言不仅用于安卓,在后来还延展到了chrome以及各种google服务的页面当中。


一组material design设计的ui,自此以后,安卓有了能和ios一较长短的ui设计

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


不过,国内用户最熟悉的还是各种定制ui,少有机会能接触到安卓原生界面

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

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

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


安卓最早的原型机为全键盘直板机,受iphone影响才改为了触屏机,但仍保留全键盘

到了安卓1.5时代,全键盘渐渐和大家说再见,不过此后机械按键仍必不可少。例如搭载安卓1.5的htc hero和安卓2.1 nexus one,都保留了轨迹球,但从中也可以看到安卓的操作按钮在不断简化,接听电话的实体键消失,取而代之的是“搜索、返回、菜单、home”这“四大金刚”。

在搭载安卓2.2的htc milestone当中,则同时出现了四大金刚电容键和机械按键,仍保留了全键盘,但这似乎也成为了保留机械实体键的最后一款爆款机型,安卓进入了电容键的时代。

随后,安卓的按键数量被进一步缩减,从搭载安卓2.3的nexus s开始,四大金刚中的搜索按钮消失,只剩下“返还、home、菜单”三大金刚。不过在形式上,各家安卓厂商的方案不同,例如同样搭载了安卓2.3的galaxy s,home键就被设计为了正*的机械按钮。

在此后的安卓机当中,这样的设计仍非常常见,和电容键乃至之后的屏幕内虚拟键相比,这样的设计能和指纹解锁更好地结合在一起,因此久经不衰。


形态各异的四大金刚三大金刚,电容键渐成主流,而菜单键也被多任务键慢慢取代

在安卓3.x中,屏幕内虚拟按钮的设计首次出现。不过安卓3.x为平板而生,未搭载到手机当中,而安卓平板一直不温不火,因此人们对它印象不深。到了安卓4.x,屏幕内虚拟按键的设计全面来袭,galaxy nexus一马当先,取消了屏幕外的电容键,将操作按钮都集成到了显示屏底部的小黑条当中。

不仅如此,按键的功能也发生了变化,菜单键被多任务键取而代之,菜单键仅会在特定的app当中出现。至此,安卓的操作方式再次发生了剧变。

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


一图看安卓按键的变更,屏幕内虚拟按键能做到更大的屏占比、实现更灵活的功能

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

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

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

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

app移动到sd卡

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

安卓这些年变化多惊人? 那些老玩家才懂的回忆

安卓这些年变化多惊人? 那些老玩家才懂的回忆
以前的安卓可以将app移动到sd卡,sd卡照常使用

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

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


现在app安装到sd卡必须格式化,且sd卡只能在本机使用

不仅如此,越来越多的安卓机,都取消了sd卡插槽。时至今日,你还记得将app移动到sd卡的玩法吗?

u盘模式

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

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

安卓u盘模式下,手机是无法读取机内文件的,现在安卓已经不再使用这一方案

首先来说说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,让安卓恢复流畅。

安卓这些年变化多惊人? 那些老玩家才懂的回忆

安卓这些年变化多惊人? 那些老玩家才懂的回忆
安卓一度需要手动trim

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

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

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

影响安卓流畅度的第一大原因,就是后台调度机制,安卓的后台机制和linux一脉相承,返回系统桌面并不会关闭app的相应进程,而是让app在后台持续运行;当系统需要更多资源的时候,相应状态的进程才会被请出去。然而不少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绕过安卓系统的限制,在最新版的安卓中,问题得到了较有效的解决。

安卓这些年变化多惊人? 那些老玩家才懂的回忆

安卓这些年变化多惊人? 那些老玩家才懂的回忆
安卓8.0限制app后台服务

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

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

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


引入art后,安卓运行java的效率大增

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

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

总结

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

期盼着最新的安卓q/安卓10,你是否还记得姜饼、冰淇淋三明治、果冻豆的味道?如果你还尘封着什么关于安卓的记忆,欢迎在评论区和大家分享吧!